我在页面加载时更改了网址中的书签。这样,当用户点击浏览器的后退按钮时,浏览器实际上不会返回,而是改变书签。然后,我可以检测到书签更改,并根据用户按下后退按钮执行其他操作。
我的问题是找到当前的网址,包括任何书签/哈希更改。它适用于所有浏览器,使用以下组合,但不适用于IE8:
document.URL
location.href
window.location.hash
和window.onhashchange
因为它对IE8不起作用,有没有人可能指出我在IE8中如何检测书签/哈希变化的正确方向?
答案 0 :(得分:1)
查看jquery-bbq,因为它实现了hashchange并使其在IE6-IE8和IE9中运行。您可能完全依赖它而不是自定义代码。
答案 1 :(得分:1)
根据jQuery hashchange plugin的作者,IE8支持开箱即用的window.onhashchange
事件绑定。
也许您可以尝试使用Ben的插件,该插件旨在在旧版浏览器上启用哈希变更检测。
编辑: My tests显示该事件未在IE8中触发。然后我在上面插件的源代码中找到了以下注释:
// Note that IE8 running in
// IE7 compatibility mode reports true for 'onhashchange' in window, even
// though the event isn't supported, so also test document.documentMode.
显然,我正在documentMode 5中运行,这是一种奇怪的模式。我打赌它只适用于IE8标准模式。无论如何,您应该能够实现Ben使用的JS code。