为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery-hashchange事件

jQuery-hashchange事件

蝴蝶刀刀 2019-11-14 09:25:40
我在用:$(window).bind( 'hashchange', function(e) { });将函数绑定到哈希更改事件。这似乎可以在IE8,Firefox和Chrome中使用,但不能在Safari中使用,并且我认为在IE的早期版本中不能使用。对于这些浏览器,我想禁用使用哈希和hashchange事件的JavaScript代码。jQuery是否可以检测浏览器是否支持该hashchange事件?也许与jQuery.support...
查看完整描述

3 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

您可以通过以下方式检测浏览器是否支持该事件:


if ("onhashchange" in window) {

  //...

}


查看完整回答
反对 回复 2019-11-14
?
白衣非少年

TA贡献1155条经验 获得超0个赞

如果有人需要的话,截至2017年的最新答案是,onhashchange所有主要浏览器均已很好地支持该答案。有关详细信息,请参见caniuse。要将其与jQuery一起使用,无需插件:


$( window ).on( 'hashchange', function( e ) {

    console.log( 'hash changed' );

} );

偶尔我会遇到仍使用hashbang URL的旧系统,这很有用。如果您要构建新的东西并使用哈希链接,我强烈建议您考虑使用HTML5 pushState API。


查看完整回答
反对 回复 2019-11-14
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

解决问题的另一种方法...


有3种方式将hashchange事件绑定到方法:


<script>

    window.onhashchange = doThisWhenTheHashChanges;

</script>

要么


<script>

    window.addEventListener("hashchange", doThisWhenTheHashChanges, false);

</script>

要么


<body onhashchange="doThisWhenTheHashChanges();">

这些都可以在Win 7上与IE 9,FF 5,Safari 5和Chrome 12一起使用。


查看完整回答
反对 回复 2019-11-14
  • 3 回答
  • 0 关注
  • 839 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信