【发布时间】: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