【问题标题】:history.js plugin - how to usehistory.js 插件 - 如何使用
【发布时间】:2012-05-30 04:19:39
【问题描述】:

我需要使用 history.js 插件。

我整理了一个简短的页面来测试功能 - http://www.salesmelbourne.com/

目前我正在努力解决以下问题:

  1. 后退/前进按钮不会重新加载 AJAX div - 这是我尚未添加的额外 history.js 函数还是我需要自己编写代码?或两者兼而有之。

  2. 我注意到标题更新时它会闪烁 - 我相信它会短暂显示页面元标题。我可以让这一切顺利吗?

  3. IE(我使用的是 9 版)在每个页面更改上显示一个弹出框,显示“来自网站的消息” - 有点像错误 - 我可以以某种方式对此进行排序吗?

  4. 同样在 IE(HTML4 浏览器)下,我得到 'suid=13383514298760299522541335484' 等。我不明白我为什么需要这个 - 我可以删除 suid 吗?

谢谢大家

【问题讨论】:

  • 可能发现pjax比history.js更容易实现。

标签: jquery history.js


【解决方案1】:

回答您的问题: 1) 是的,您需要将 history.js 与您的代码联系起来。 History.js 会记住你传递给它的任何参数,等等,但当然,你可以对这些参数做些什么。

2) 需要查看您所指的内容。我的实现没有“刷新”页面,但话又说回来,我没有使用 history.js 的“标题”功能。有关相关信息,请参见下面的第 4 点。我敢打赌,您的实现会加载页面两次,每次您返回/前进时。

3) 我使用 IE9 并没有收到任何此类警报。提供有关其内容的更多信息。如果它是一条错误消息,那么很可能您的代码中存在 Javascript 错误。

4) 当您使用 History.pushState(data, title, url) 的 data & title 参数时,suid 参数出现在非 HTML5 浏览器(如 IE9)中。我的 history.js 实现只使用了 url 参数,因此我做了 History.pushState(null, null, url) 并且 suid 没有出现在 IE9 中。

【讨论】:

  • 为了避免 _suid 问题,你必须先做History.pushState(null, null, url) 然后document.title = 'a title' 而不是History.pushState(null, 'a title', url)
  • 为了避免 _Suid 问题,您还可以设置 History.options.disableSuid = true。这也应该防止 SUID 出现在 URL 中
【解决方案2】:

3.IE(我使用的是版本 9)在每个页面更改上显示一个弹出框,显示“来自网站的消息” - 有点像错误 - 我可以排序吗 这不知怎么的?

原因:您需要从代码中删除“History.log()”...在 IE 中,此 History.log 正在将日志输出写入警报框...

【讨论】:

    【解决方案3】:

    history.js 插件不太好用......这是个好主意,我仍然会感谢作者的尝试,但几乎没有一个案例网站使用它:

    https://github.com/browserstate/history.js/wiki/Showcase

    HTML4 支持只会给我 IE 错误。

    如果您正在寻找这样的解决方案,我的建议是编写您自己的解决方案以适合您构建的网站...

    【讨论】:

    • 对于这个问题的所有访问者,请注意,这个被接受的“答案”来自提出问题的同一个人。形成你自己的意见 history.js 是否适合你。就个人而言,我在进行了大量研究并看到很多人推荐它后,在一天内就实现了它。
    • 呃,history.js 对我来说很好用。我花了几个小时把它绑定到我们的网站上,一切正常(包括 IE 支持)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 2012-02-08
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    相关资源
    最近更新 更多