首页 > 解决方案 > 我可以在网页中设置“默认书签”,以便浏览器在请求页面时自动转到(HTML5、CSS、PHP 等)?

问题描述

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

我觉得必须有一种方法来改变这种行为,以便页面将自动加载到页面下方的指定书签处,因为在我看来这很简单,但我找不到任何东西。也许我在寻找错误的地方?

具体问题:

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

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

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

标签: phphttp-headersxhtmldefaultbookmarks

解决方案


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

但是,无法在 PHP 中识别这些“片段”或告诉浏览器从 PHP 滚动到特定位置。片段永远不会发送到网络服务器,仅由浏览器内部使用。并且滚动条的位置是由浏览器根据与浏览器窗口大小和屏幕分辨率相对应的内容大小来控制的,这对于服务器端的 PHP 代码来说都是未知的。

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


推荐阅读