Ian*_*ert 83 javascript jquery hashchange browser-state
我在用:
$(window).bind( 'hashchange', function(e) { });
Run Code Online (Sandbox Code Playgroud)
将函数绑定到散列更改事件.这似乎适用于IE8,Firefox和Chrome,但不适用于Safari,我认为不是早期版本的IE.对于这些浏览器,我想禁用使用哈希和hashchange事件的JavaScript代码.
如果浏览器支持该hashchange事件,我可以检测到jQuery的方法吗?也许是jQuery.support......
CMS*_*CMS 68
您可以通过以下方式检测浏览器是否支持该事件:
if ("onhashchange" in window) {
//...
}
Run Code Online (Sandbox Code Playgroud)
也可以看看:
Kev*_*ary 32
如果有人需要,那么截至2017年的更新答案onhashchange是在所有主流浏览器中都得到了很好的支持.有关详细信息,请参阅caniuse.要与jQuery一起使用,不需要插件:
$( window ).on( 'hashchange', function( e ) {
console.log( 'hash changed' );
} );
Run Code Online (Sandbox Code Playgroud)
偶尔我会遇到仍然使用hashbang URL的遗留系统,这很有帮助.如果您正在构建新的东西并使用哈希链接,我强烈建议您考虑使用HTML5 pushState API.
jam*_*iss 18
解决问题的另一种方法......
有三种方法可以将hashchange事件绑定到方法:
<script>
window.onhashchange = doThisWhenTheHashChanges;
</script>
Run Code Online (Sandbox Code Playgroud)
要么
<script>
window.addEventListener("hashchange", doThisWhenTheHashChanges, false);
</script>
Run Code Online (Sandbox Code Playgroud)
要么
<body onhashchange="doThisWhenTheHashChanges();">
Run Code Online (Sandbox Code Playgroud)
这些都适用于Win 7上的IE 9,FF 5,Safari 5和Chrome 12.
试试Mozilla官方网站:https://developer.mozilla.org/en/DOM/window.onhashchange
引用如下:
if ("onhashchange" in window) {
alert("The browser supports the hashchange event!");
}
function locationHashChanged() {
if (location.hash === "#somecoolfeature") {
somecoolfeature();
}
}
window.onhashchange = locationHashChanged;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
155409 次 |
| 最近记录: |