首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery -哈希更改事件

jQuery -哈希更改事件
EN

Stack Overflow用户
提问于 2010-06-22 13:20:13
回答 11查看 173.6K关注 0票数 87

我正在使用:

代码语言:javascript
复制
$(window).bind( 'hashchange', function(e) { });

将函数绑定到哈希更改事件。这似乎适用于IE8、火狐和Chrome浏览器,但不适用于Safari,我想也不适用于早期版本的IE。对于这些浏览器,我想禁用使用散列和hashchange事件的JavaScript代码。

有没有一种方法可以让jQuery检测浏览器是否支持hashchange事件?也许是和jQuery.support有关的事。

EN

回答 11

Stack Overflow用户

发布于 2017-10-10 22:41:36

到2017年为止,如果有人需要的话,最新的答案是onhashchange在所有主流浏览器中都得到了很好的支持。详情请参见caniuse。要在jQuery中使用它,不需要任何插件:

代码语言:javascript
复制
$( window ).on( 'hashchange', function( e ) {
    console.log( 'hash changed' );
} );

偶尔我会遇到一些遗留系统,其中仍然使用hashbang URL,这对我很有帮助。如果您正在构建新的东西并使用散列链接,我强烈建议您考虑使用HTML5 pushState应用编程接口。

票数 41
EN

Stack Overflow用户

发布于 2010-06-22 13:53:59

有一个hashchange插件,它封装了功能和跨浏览器问题available here

票数 18
EN

Stack Overflow用户

发布于 2011-06-29 23:25:59

用不同的方法来解决你的问题。

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

代码语言:javascript
复制
<script>
    window.onhashchange = doThisWhenTheHashChanges;
</script>

代码语言:javascript
复制
<script>
    window.addEventListener("hashchange", doThisWhenTheHashChanges, false);
</script>

代码语言:javascript
复制
<body onhashchange="doThisWhenTheHashChanges();">

这些都适用于Win7上的IE 9、FF 5、Safari 5和Chrome 12。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3090478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档