使用javascript从IE8中的地址栏中查找当前网址

时间:2010-10-27 03:25:44

标签: javascript internet-explorer-8

我在页面加载时更改了网址中的书签。这样,当用户点击浏览器的后退按钮时,浏览器实际上不会返回,而是改变书签。然后,我可以检测到书签更改,并根据用户按下后退按钮执行其他操作。

我的问题是找到当前的网址,包括任何书签/哈希更改。它适用于所有浏览器,使用以下组合,但不适用于IE8:

document.URL
location.href
window.location.hash

window.onhashchange

因为它对IE8不起作用,有没有人可能指出我在IE8中如何检测书签/哈希变化的正确方向?

2 个答案:

答案 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