更改 History.js for HTML4 浏览器的行为

Changing the behaviour of History.js for HTML4 browsers

本文关键字:浏览器 HTML4 History js for 更改      更新时间:2023-09-26

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

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

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

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

如果我们没有从主页开始,网址就会受到污染

  • http://www.facebook.com/balupton#!/balupton?sk=info

  • http://mywebsite.com/page1#/page2

虽然,我的 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 的部分答案将是下面的解决方案。尝试以下有关 https://github.com/browserstate/history.js/的代码

History.options.disableSuid 

强制历史不附加 suid