Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE7问题中的绑定hashchange事件_Javascript_Jquery_Internet Explorer_Internet Explorer 7_Hashchange - Fatal编程技术网

Javascript IE7问题中的绑定hashchange事件

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本身不支持它。您是

我在Internet Explorer 7中遇到一些绑定到hashchange事件的问题。所有其他版本的InternetExplorer-ie.8和9都可以正常工作

我的代码是:

 $(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以来不再工作,因为它现在已不推荐使用。