IE7问题中的绑定hashchange事件



我在Internet Explorer 7中绑定hashchange事件时遇到一些问题。所有其他版本的Internet Explorer - ie。8,

我的代码是:
 $(window).bind('hashchange', function (e) { alert('hash changed'); });

当url的哈希值在Firefox, IE8, IE9中发生变化时,我会收到警告框,但在IE7中,什么都没有发生。

有人有过这样的经历吗?

很确定IE6和IE7本身不支持。你有没有尝试使用本阿尔曼的jquery BBQ脚本修复这个?

[复制jQuery - hashchange事件的答案]

我刚刚遇到了同样的问题(IE7中缺乏hashchange事件)。适合我的目的的解决方法是绑定更改哈希值的链接的单击事件。

<a class='hash-changer' href='#foo'>Foo</a>
<script type='text/javascript'>
if (("onhashchange" in window) && !($.browser.msie)) { 
    //modern browsers 
    $(window).bind('hashchange', function() {
        var hash = window.location.hash.replace(/^#/,'');
        //do whatever you need with the hash
    });
} else {
    //IE and browsers that don't support hashchange
    $('a.hash-changer').bind('click', function() {
        var hash = $(this).attr('href').replace(/^#/,'');
        //do whatever you need with the hash
    });
}
</script>

相关内容

  • 没有找到相关文章

最新更新