我在Internet Explorer 7中绑定hashchange事件时遇到一些问题。所有其他版本的Internet Explorer - ie。8,
我的代码是: $(window).bind('hashchange', function (e) { alert('hash changed'); });
当url的哈希值在Firefox, IE8, IE9中发生变化时,我会收到警告框,但在IE7中,什么都没有发生。
有人有过这样的经历吗?
很确定IE6和IE7本身不支持。你有没有尝试使用本阿尔曼的jquery BBQ脚本修复这个?
[复制jQuery - hashchange事件的答案]
我刚刚遇到了同样的问题(IE7中缺乏hashchange事件)。适合我的目的的解决方法是绑定更改哈希值的链接的单击事件。
<a class='hash-changer' href='#foo'>Foo</a>
<script type='text/javascript'>
if (("onhashchange" in window) && !($.browser.msie)) {
//modern browsers
$(window).bind('hashchange', function() {
var hash = window.location.hash.replace(/^#/,'');
//do whatever you need with the hash
});
} else {
//IE and browsers that don't support hashchange
$('a.hash-changer').bind('click', function() {
var hash = $(this).attr('href').replace(/^#/,'');
//do whatever you need with the hash
});
}
</script>