5

Internet Explorer 7 の hashchange イベントにバインドする際に問題が発生しています。Internet Explorer の他のすべてのバージョン - つまり、. 8と9は問題なく動作します。

私のコードは次のとおりです。

 $(window).bind('hashchange', function (e) { alert('hash changed'); });

Firefox、IE8、IE9 で URL のハッシュが変更されると警告ボックスが表示されますが、IE7 では何も起こりません。

誰もこれを前に経験していますか?

4

2 に答える 2

8

IE6 と IE7 がネイティブでサポートしていないことは確かです。これを修正する Ben Alman の jquery BBQ スクリプトを使用してみましたか?

于 2011-07-26T16:52:37.707 に答える
0

[jQueryからこの回答をコピーする-hashchangeイベント]

同じ問題が発生しました(IE7でのハッシュ変更イベントの欠如)。私の目的に適した回避策は、ハッシュを変更するリンクのクリックイベントをバインドすることでした。

<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>
于 2012-07-06T22:15:04.513 に答える