обязательное событие hashchange в выпуске IE7 - PullRequest
5 голосов
/ 26 июля 2011

У меня возникли некоторые проблемы, связанные с событием hashchange в Internet Explorer 7. Все остальные версии Internet Explorer - т.е. 8 и 9 работают без проблем.

Мой код:

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

Когда хэш URL-адреса изменяется в Firefox, IE8, IE9, я получаю окно предупреждения, но в IE7 ничего не происходит.

Кто-нибудь испытывал это раньше?

Ответы [ 2 ]

8 голосов
/ 26 июля 2011

Уверен, IE6 и IE7 изначально не поддерживают его. Вы пытались использовать jquery BBQ скрипт Бена Алмана, который исправляет это?

0 голосов
/ 07 июля 2012

[Копирование этого ответа из jQuery - событие hashchange ]

Я только что столкнулся с той же проблемой (отсутствие события 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>
...