我可以在网页中设置一个“默认书签”,以便在请求页面时浏览器自动进入(HTML5、CSS、PHP 等)吗?

Can I set a "default bookmark" in a web page for the browser to go to automatically when the page is requested (HTML5, CSS, PHP, etc.)?

提问人:Roberto Fontiglia 提问时间:5/16/2020 更新时间:5/16/2020 访问量:382

问:

网页的默认行为是浏览器“从顶部”显示它。例如,如果我将属性设置为页面中的元素,然后请求 URL ,则可以请求从特定书签显示它。id="my_bookmark"mywebsite.com/mypage.html#my_bookmark

我觉得必须有一种方法来改变这种行为,以便页面会自动加载到页面下方的指定书签处,因为在我看来,这似乎是一件轻而易举的事,但我找不到任何东西。也许我找错了地方?

具体问题:

  1. 有没有一种简单的 HTML5 方法可以做到这一点?就像某种标签或其他标签一样,它告诉浏览器默认在哪个书签上加载页面?<meta>
  2. 如果做不到这一点,我很好奇:书签是如何处理的?我觉得如果它们包含在 URL 中,那一定是因为服务器对该信息做了一些事情;我可以用PHP对书签做任何事情吗?或者甚至有该死的文件?.htaccess
  3. 如果这个功能在任何地方都不存在,那么我有充分的理由看不到吗?在我看来,这确实是一件非常简单的事情。

如果你想知道,我的用例是这样的:我正在制作一个基于网络的游戏,让玩家通过解决谜题来浏览故事。每隔一段时间,玩家就会发现故事的一个新“片段”(几个新段落)。当他们这样做时,他们被带到他们迄今为止发现的所有故事片段将按阅读顺序从上到下显示的地方。但我希望玩家能够直接看到他们发现的故事的最后一点,如果他们想阅读之前的内容,我希望他们向上滚动。我觉得这必须是可行的,而且相当简单。story.phpstory.php

我所知道的东西:一些HTML5,一些CSS,一些PHP。我真的不想使用特定的新PHP库,如果这意味着我必须安装它,而且我觉得我想避免使用JavaScript,但也许你可以说服我。

php http-headers xhtml 默认 书签

评论

0赞 user3783243 5/16/2020
这必须用 JS 来完成。PHP 对渲染窗口一无所知。
1赞 Peter 5/16/2020
“我觉得这必须是可行的,而且相当简单。是的,通过在 URL 中包含片段,正如您在第一段中描述的那样(URL 中 # 字符后面的部分称为片段。书签完全是另一回事)。这是怎么回事?

答:

2赞 Mastacheata 5/16/2020 #1

如果您已经有了正确的锚标记,只需将链接指向 story.php#anchor。

但是,没有办法在PHP中识别这些“片段”,也没有办法告诉浏览器从PHP滚动到特定位置。片段永远不会发送到 Web 服务器,仅供浏览器内部使用。而滚动条的位置则由浏览器根据内容的大小来控制,对应的是浏览器窗口的大小和屏幕分辨率,这两者都不是服务器端PHP代码所不知道的。

您可以使用 window.scrollTo 函数滚动到文档中的特定坐标。(参见:https://developer.mozilla.org/de/docs/Web/API/Window/scrollTo)