我正在使用:
$(window).bind( 'hashchange', function(e) { });
将函数绑定到哈希更改事件。这似乎适用于IE8、火狐和Chrome浏览器,但不适用于Safari,我想也不适用于早期版本的IE。对于这些浏览器,我想禁用使用散列和hashchange
事件的JavaScript代码。
有没有一种方法可以让jQuery检测浏览器是否支持hashchange
事件?也许是和jQuery.support
有关的事。
发布于 2017-10-10 22:41:36
到2017年为止,如果有人需要的话,最新的答案是onhashchange
在所有主流浏览器中都得到了很好的支持。详情请参见caniuse。要在jQuery中使用它,不需要任何插件:
$( window ).on( 'hashchange', function( e ) {
console.log( 'hash changed' );
} );
偶尔我会遇到一些遗留系统,其中仍然使用hashbang URL,这对我很有帮助。如果您正在构建新的东西并使用散列链接,我强烈建议您考虑使用HTML5 pushState应用编程接口。
发布于 2010-06-22 13:53:59
有一个hashchange插件,它封装了功能和跨浏览器问题available here。
发布于 2011-06-29 23:25:59
用不同的方法来解决你的问题。
有3种方法可以将hashchange事件绑定到方法:
<script>
window.onhashchange = doThisWhenTheHashChanges;
</script>
或
<script>
window.addEventListener("hashchange", doThisWhenTheHashChanges, false);
</script>
或
<body onhashchange="doThisWhenTheHashChanges();">
这些都适用于Win7上的IE 9、FF 5、Safari 5和Chrome 12。
https://stackoverflow.com/questions/3090478
复制相似问题