History.js - IE中的奇怪行为......以及Chrome未在pushState上触发状态更改事件

时间:2014-07-17 12:32:36

标签: javascript ajax history.js

我准备好了解有关History.js的问题。我试图让它工作,以便它保存到其历史记录的URL实际上匹配我希望人们可以用作书签的完整查询字符串。然后我使用Javascript来阻止传入的查询字符串,并基于该数据分支到各种其他Javascript方法。

我需要它与IE 8(是的,我知道......),Firefox和Chrome(更新版本)一起工作。

哦,还有一个要求:"默认" / index页面实际上应该自动运行Ajax查询(使用默认条件),最终填充表格。

嗯,在两天结束时,我以为我终于让一切都运转了。传入的查询字符串将运行Javascript例程。在这些例程中,我有History.pushState调用来填充历史记录。我发现History.pushState会导致完全相同的Javascript方法(和Ajax搜索)运行SECOND时间。所以,我在这里找到了一些解决方法:

https://github.com/browserstate/history.js/issues/47#issuecomment-25750285

除了历史不会记得"我的索引页面。因此,我没有让检测到查询字符串的Javascript触发Javascript方法,而是告诉它执行History.pushState来触发该方法。

一切似乎都很好,我去睡觉了。

今天早上,我说,geez,我最好检查一下Firefox。只是发现Firefox似乎没有做任何事情,一旦它到达那个应该为索引页面触发History.pushState的那一行。没有州改变。

我解雇了IE8。奇。它会发出警报"消息,显然包含我发送到History.pushState的参数的内容! (现在,Chrome将其转发到console.log。但这并不是倾销到IE的控制台。嗯......)真奇怪的是,浏览器中的URL字段是奇数。我的所有网址都像" domain.com/?search"或" domain.com/?无论如何"。 IE8正在向我显示" /# ./?& _suid = 1405599"

的索引页面的URL

Doe有人在IE8和其他更现代的浏览器上使用History.js ....使用" fake"真实"真实"在History.js使用的意义上,URL是与您的查询字符串相同的URL来执行操作吗?

我觉得我应该放弃......我想......开始使用Angular.js了吗?我只想得到" Back"和"转发"按钮和"书签/链接"工作。啧!

0 个答案:

没有答案