Javascript IE7问题中的绑定hashchange事件
我在Internet Explorer 7中遇到一些绑定到hashchange事件的问题。所有其他版本的InternetExplorer-ie.8和9都可以正常工作 我的代码是:Javascript IE7问题中的绑定hashchange事件,javascript,jquery,internet-explorer,internet-explorer-7,hashchange,Javascript,Jquery,Internet Explorer,Internet Explorer 7,Hashchange,我在Internet Explorer 7中遇到一些绑定到hashchange事件的问题。所有其他版本的InternetExplorer-ie.8和9都可以正常工作 我的代码是: $(window).bind('hashchange', function (e) { alert('hash changed'); }); 在Firefox、IE8、IE9中,当url的散列值发生变化时,我会收到警报框,但在IE7中,什么都不会发生 以前有人经历过这种情况吗?很确定IE6和IE7本身不支持它。您是
$(window).bind('hashchange', function (e) { alert('hash changed'); });
在Firefox、IE8、IE9中,当url的散列值发生变化时,我会收到警报框,但在IE7中,什么都不会发生
以前有人经历过这种情况吗?很确定IE6和IE7本身不支持它。您是否尝试使用Ben Alman的jquery烧烤脚本来修复此问题?[从中复制此答案] 我遇到了同样的问题(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>
如果((“窗口中的”(“onhashchange”)和($.browser.msie)){
//现代浏览器
$(窗口).bind('hashchange',function(){
var hash=window.location.hash.replace(/^#/,“”);
//你想怎么做就怎么做
});
}否则{
//IE和不支持hashchange的浏览器
$('a.hash-changer').bind('click',function(){
var hash=$(this.attr('href').replace(/^#/,'');
//你想怎么做就怎么做
});
}
Internet Explorer不是有效的浏览器…IE8是第一款本机支持它的IE浏览器。然而,请注意,处于兼容模式的IE8(例如,充当IE7)将声称支持它,但正如Ben Alman指出的那样,它并不支持:$.browser自jQuery版本1.9以来不再工作,因为它现在已不推荐使用。