5

Estoy experimentando algunos problemas vinculantes para el evento hashchange en Internet Explorer 7. Todas las demás versiones de Internet Explorer, es decir. 8 & 9 funcionan sin problemas.evento hashchange vinculante en IE7 problema

Mi código es:

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

Cuando el hash de los cambios de URL en Firefox, IE8, IE9 me sale el cuadro de alerta, pero en IE7, no pasa nada.

¿Alguien tiene esta experiencia antes?

+7

Internet Explorer no es un navegador válido ... – genesis

Respuesta

8

Bastante seguro de que IE6 e IE7 no lo admiten de forma nativa. ¿Intentó utilizar el script jquery BBQ de Ben Alman que corrige esto?

+2

IE8 fue el primer navegador IE que lo admitió de forma nativa. Sin embargo, tenga en cuenta que IE8 en modo de compatibilidad (por ejemplo, que actúa como IE7) afirmará que lo admite, pero no lo hace, como señala Ben Alman: http://benalman.com/projects/jquery-hashchange-plugin/ –

0

[Copia de esta respuesta de jQuery - hashchange event]

Me acabo de encontrar con el mismo problema (falta de evento hashchange en IE7). Una solución alternativa adecuada para mis propósitos era vincular el evento click de los enlaces de cambio de hash.

<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> 
+1

Solo quería señalar que $ .browser ya no funciona desde jQuery versión 1.9 ya que ahora está en desuso. http://api.jquery.com/jQuery.browser/ – Rumplin

+0

también esto no será compatible con el botón de retroceso del navegador ... – 0m4r