【问题标题】:Hash changed in url in IE9 for browser back button浏览器后退按钮的 IE9 中 url 中的哈希更改
【发布时间】:2013-02-22 08:51:29
【问题描述】:

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

对于 IE9 - 仍然是 HTML4 - 我不能使用历史 pushState 或 replaceState,因此需要依赖哈希标签。如果我完全拥有一个网站,这很有效,但如果我们遇到像 Facebook 这样的情况,其中 iFrame 与父级 (facebook.com) 位于不同的域中,我会迷路 - 由于相同的来源策略。

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

在 iFrame 中设置散列在 IE9 中不起作用 - 单击浏览器后退按钮会忽略我在 iFrame 中所做的散列更改。

任何人都看到我做错了什么,或者在 IE9 内部无法通过 Ajax 调用从 iFrame 内部使用浏览器按钮?或者有没有办法从 iFrame 父级接收 hashchange 事件?

谢谢!

【问题讨论】:

    标签: javascript facebook internet-explorer-9


    【解决方案1】:

    我建议捕获退格按钮,大多数人使用该按钮返回,并为 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]-->
    

    【讨论】:

    • 微笑,我喜欢你的回答!所以这意味着没有机会点击 iFrame 内的浏览器后退/前进/刷新按钮...
    • 这仍然意味着他们可以使用浏览器的后退按钮。但是,如果您捕获退格 stackoverflow.com/questions/2353550/…,您可以使用 preventdefault 方法或返回 false,因此它不会执行 history.back(),而是执行您希望它执行的操作。如果你为用户提供你自己的大后退按钮,他们会使用它来导航,希望你可以使用 onunload 事件处理程序来警告用户。
    • 大部分人使用退格键返回?你有任何数据来支持这一点(因为它不符合我的期望)?
    • 我认识的每个人都使用退格键,因为在浏览器上很难找到后退键,或者他们懒得使用笔记本上的触控板。
    • 您可以使用这样的简单跟踪脚本来衡量您自己的统计数据。 jsfiddle.net/xCSbd
    猜你喜欢
    • 2015-08-12
    • 2010-09-15
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 2021-03-24
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多