带有标准链接的 HTML5 历史记录 API

发布于 2024-11-25 11:18:34 字数 439 浏览 4 评论 0原文

因此,在重新设计我的网站后,当我在这里看到它的出色使用时,我想我应该使用 HTML5 历史记录 API: http://diveintohtml5.ep.io/examples/history/casey.html

问题是,提供的代码对我不起作用(使用 Chrome 8)。

不完全确定原因,但它只是在成功加载部分内容后使用链接的 href 值刷新页面。

还有其他使用 API 的示例吗?我不想要 History.js 或类似的东西,因为它使用 hash/hashbangs 作为后备。我正在努力摆脱这些。

有什么想法吗?

编辑:Firebug 向我抛出“链接没有价值”以及对部分加载内容的无数请求。这些之后页面刷新

So, after redesigning my site, I thought I would use the HTML5 history API, when I saw brilliant use of it here: http://diveintohtml5.ep.io/examples/history/casey.html

Problem is, the code provided doesn't work for me, (using Chrome 8).

Not entirely sure why, but it simply refreshes the page with the href value of the link after the partial content is successfully loaded.

Are there any other examples of this use of the API? I dont want History.js or anything like that as that uses hash/hashbangs as a fallback. I'm trying to get rid of these.

Any ideas?

edit: Firebug throws a 'link has no value' at me as well as countless requests for the partially loaded content. After these the page refreshes

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

残龙傲雪 2024-12-02 11:18:34

您必须拦截链接点击并调用您自己的pushState - 如果您查看页面上的代码,您将看到事件处理程序:

function addClicker(link) {
  link.addEventListener("click", function(e) {
    if (swapPhoto(link.href)) {
      history.pushState(null, null, link.href);
      e.preventDefault();
    }
  }, true);
}

You have to intercept the link click and call your own pushState - if you check out the code on the page you will see the event handler:

function addClicker(link) {
  link.addEventListener("click", function(e) {
    if (swapPhoto(link.href)) {
      history.pushState(null, null, link.href);
      e.preventDefault();
    }
  }, true);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文