IE历史推送状态



我有一个网页,用户可以通过AJAX在不重新加载页面的情况下显示条款和条件。这本身没有问题,然而,我也在努力推动一种历史状态。

这在大多数浏览器中都很好,除了IE。出于某种莫名其妙的原因,在那里,内容是通过AJAX加载的,但也会使用上一页打开一个新的选项卡。我该怎么解决这个问题?

你可以在这个网页上看到这个例子(http://galaxy-battle.de),尝试点击"加入"框中的"T&Cs"。

IE9及以下版本不支持pushState。调用以下线路时出现异常

window.history.pushState(null,null,pathFullPage);

SCRIPT438:对象不支持属性或方法"pushState"?terms_and_conditions,第62行字符21

您可能会对IE 中Emulate/polyfill history.pushstate()中讨论的一些解决方法感兴趣

老问题,但仍是当前问题。我只想说,我建议而不是尝试在IE上模拟pushState。

相反,你可以使用一个功能检测:

  1. 如果history.pushState不为空(浏览器支持pushState),则使用它并使用漂亮的javascript 加载内容

  2. 如果history.pushState为空(浏览器不支持pushState),则更改url/跟随链接并进行整页更改

当然,这意味着IE<9用户不会拥有其他用户拥有的所有酷动画。但我想问的问题是:你想在网上看到包含#的网站链接吗?

用户可能认为你的应用程序很有用,并将链接粘贴到网络上。这很酷,因为它给你带来了一些谷歌果汁。现在,如果该用户使用IE,而您使用history.js,则用户将粘贴一个包含哈希的链接。

这将破坏你的应用程序的公共页面的适当索引,也会看起来很难看。我个人的观点是,为IE用户提供js动画或灯箱不值得这些交易

相关内容

  • 没有找到相关文章

最新更新