在IE9中,为了浏览器后退按钮,哈希在url中更改了

时间:2013-03-07 08:31:24

标签: javascript facebook internet-explorer-9

我正在开发一个Facebook画布应用程序,并希望使用我的ajax调用使后退,前进和刷新浏览器按钮起作用。有几个jquery插件支持这个动作,比如jquery.address或history.js。

对于IE9 - 仍然是HTML4 - 我不能使用历史pushState或replaceState,因此需要依赖哈希标记。如果我完全拥有一个网站,这种情况很有效,但是如果我们遇到类似Facebook的情况,那么iFrame与父母(facebook.com)在不同的域上,我会丢失 - 由于相同的原始政策。

我能够使用散列更改设置parent.location.href,但是当散列更改时,我无法在iFrame中接收事件。

在IE9中设置哈希在IE9中不起作用 - 单击浏览器后退按钮会忽略我在iFrame中进行的哈希更改。

任何人都可以看到我做错了或者在IE9里面是不可能使用Ajax调用的iFrame内部的浏览器按钮?或者有没有办法从iFrame父级接收hashchange事件?

谢谢!

1 个答案:

答案 0 :(得分:0)

我建议捕获退格按钮,大多数人都会使用该按钮返回并为IE用户设置特殊的后退按钮,类似于ie9,所以他们的直觉就是使用它们。

<!--[if lte IE 9]>
   html code for IE users, explaining why they are ignorant... giving them a back button, catching the backspace key and using that....
<![endif]-->