【问题标题】:Changing the behaviour of History.js for HTML4 browsers为 HTML4 浏览器更改 History.js 的行为
【发布时间】:2013-10-08 15:49:58
【问题描述】:

我正在使用 history.js 插件 (https://github.com/browserstate/history.js/) 在打开页面时为页面上的元素提供某个唯一的 url。

正如预期的那样,这在 HTML5 浏览器中效果很好,但该插件并不能完全满足我在 HTML4 浏览器(换句话说,Internet Explorer)中的需要。

基本上,我遇到了插件文档中概述的相同陷阱,如下所示:

如果使用哈希,这些问题是不可避免的。

如果我们没有从主页开始,URL 就会被污染

虽然,我的 URL 并没有这么糟糕,除了被抛出的哈希值之外,该 URL 是可用的。最后删除 suid 也很好,因为在我的情况下没有必要,但如果不可能的话应该没问题。

这是我的 URL 需要的样子:

http://domain.com/sitename/main/item/109

这是 IE 中的结果:

http://domain.com/sitename/#main/idea/109?&_suid=13812466306670658...

据我从文档中收集到的信息,我唯一的选择是禁用 HTML4 回退,这意味着在 IE 中不会发生任何事情。

我想知道是否有一种方法可以放弃 HTML4 后备选项,但 仍然使用 HTML5 解决方案(以相同的方式更改 url,只需不同的方法.. 我知道用于 HTML5 解决方案的方法不起作用)。或者,如果有任何其他方法可以改变 HTML4 解决方案的实现方式,使其适应这个项目的需要?

更新: 在我自己的研究中,我似乎发现不使用哈希就不可能更改兼容 HTML4 的浏览器的 url。我目前正在将一些解决方法集成到我的项目中,以便我们的 URL 使用哈希。我仍然没有回答这个问题,因为这不是一个真正的答案,我什至不知道我是否 100% 正确。

【问题讨论】:

  • 你能用字符串方法清理 url 吗?
  • 我认为我可以,但可能需要对插件有深入的了解才能这样做,因为所有转换都在插件内动态进行。

标签: javascript history.js html4


【解决方案1】:

如果仍然需要它,对您来说更清晰的 URL 的部分答案将是下面的解决方案。 试试下面关于https://github.com/browserstate/history.js/的代码

History.options.disableSuid 

强制历史不附加 suid

【讨论】:

    猜你喜欢
    • 2015-10-14
    • 2023-03-09
    • 2014-05-01
    • 2021-03-24
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多