我有一个网页,用户可以通过AJAX显示条款和条件而无需重新加载页面。这本身不是问题,但是,我也试图推动历史状态。IE历史记录推送状态
在大多数浏览器中工作正常,IE除外。出于某种莫名其妙的原因,在那里,内容通过AJAX加载,而且,在前一页打开一个新标签页。我怎样才能解决这个问题?
您可以在此网页上看到示例(http://galaxy-battle.de),请尝试单击“加入”框中的“T & Cs”。
我有一个网页,用户可以通过AJAX显示条款和条件而无需重新加载页面。这本身不是问题,但是,我也试图推动历史状态。IE历史记录推送状态
在大多数浏览器中工作正常,IE除外。出于某种莫名其妙的原因,在那里,内容通过AJAX加载,而且,在前一页打开一个新标签页。我怎样才能解决这个问题?
您可以在此网页上看到示例(http://galaxy-battle.de),请尝试单击“加入”框中的“T & Cs”。
IE9及以下doesn't support pushState。在调用以下行时您有例外
window.history.pushState(null,null,pathFullPage);
SCRIPT438:对象不支持属性或方法“pushState的” TERMS_AND_CONDITIONS,行62字符21
你可能可能会看起来很有趣的关于在Emulate/polyfill history.pushstate() in IE
老,但仍然当前问题讨论一些解决方法? 。我只想说我会建议而不是尝试模拟IE上的pushState。
取而代之的是,你可以使用一个特征检测:
如果history.pushState
不为空(浏览器支持pushState的),你使用它,并用漂亮的JavaScript
如果history.pushState
加载内容为空(浏览器不支持pushState),您更改url /关注链接并完成整页更改
当然,这意味着IE < = 9个用户不会拥有其他用户拥有的所有酷动画。但我想问的问题是:你是否想看到包含#
的网站的网络链接?
用户可能认为您的应用很有用,并在网络上粘贴链接。这很酷,因为它带给你一些谷歌果汁。现在,如果该用户使用IE并使用history.js,则用户将粘贴包含散列的链接。
这将破坏您的应用程序的公共页面的正确索引,并且也会看起来很丑。我个人的观点是,为IE用户制作js动画或灯箱并不值得这些权衡。
不幸的是业务需求并不总是在开发人员的直接控制之下。 – jaydel 2015-08-03 12:43:15
你可以告诉我们在jsfiddle中执行该操作的代码,因此更容易发现错误并进行调试吗? – 2012-07-28 22:52:26
哦,对不起,只是读它。要做一点。 – arik 2012-07-29 20:16:59
对不起,但我无法使pushState命令在jsfiddle上工作,它们似乎阻止了它。 – arik 2012-07-29 22:51:44