jQuery-hashchange事件

我在用:


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

将函数绑定到哈希更改事件。这似乎可以在IE8,Firefox和Chrome中使用,但不能在Safari中使用,并且我认为在IE的早期版本中不能使用。对于这些浏览器,我想禁用使用哈希和hashchange事件的JavaScript代码。


jQuery是否可以检测浏览器是否支持该hashchange事件?也许与jQuery.support...


蝴蝶刀刀
浏览 840回答 3
3回答

弑天下

您可以通过以下方式检测浏览器是否支持该事件:if ("onhashchange" in window) {  //...}

白衣非少年

如果有人需要的话,截至2017年的最新答案是,onhashchange所有主要浏览器均已很好地支持该答案。有关详细信息,请参见caniuse。要将其与jQuery一起使用,无需插件:$( window ).on( 'hashchange', function( e ) {    console.log( 'hash changed' );} );偶尔我会遇到仍使用hashbang URL的旧系统,这很有用。如果您要构建新的东西并使用哈希链接,我强烈建议您考虑使用HTML5 pushState API。

一只甜甜圈

解决问题的另一种方法...有3种方式将hashchange事件绑定到方法:<script>&nbsp; &nbsp; window.onhashchange = doThisWhenTheHashChanges;</script>要么<script>&nbsp; &nbsp; window.addEventListener("hashchange", doThisWhenTheHashChanges, false);</script>要么<body onhashchange="doThisWhenTheHashChanges();">这些都可以在Win 7上与IE 9,FF 5,Safari 5和Chrome 12一起使用。
打开App,查看更多内容
随时随地看视频慕课网APP