火狐中的 Jquery 哈希更改问题



我在Firefox中的hashchange事件中遇到了问题。我们正在使用Ben Alman提供的JQuery哈希更改插件。代码如下。

$(window).hashchange(function (e) {
    alert("Hello");
    //we want to perform a post in here.
});
var temp = "#123";
if (temp !== "") {
    if (window.location.hash == temp) {
        $(window).hashchange();
    } 
    else{
        window.location.hash = temp;
    }
} 
else {
    window.location.hash = "#Home/Home";
};

现在这在IE9和Chrome中工作正常,但是在Firefox中,我看到了警报,但是一旦我单击"确定",页面就会刷新,再次显示警报,并无限继续。Firefox 是否使用了我不知道的某种奇怪的行为?还是只是隐藏着更深层次的其他问题?

在某些浏览器中,window.location.hash包含#,而在某些浏览器中则不包含,因此最好在比较代码中的哈希值时忽略它。

试试这个。

$(window).hashchange(function (e) {
    alert("Hello");
    //we want to perform a post in here.
});
//Remove hash from here which will be compared with window.location.hash
var temp = "123";
if (temp !== "") {
    //Replace # by empty nothing
    if (window.location.hash.replace('#', '') == temp) {
        $(window).hashchange();
    } 
    else{
        window.location.hash = '#' + temp;//Now add the hash here
    }
} 
else {
    window.location.hash = "#Home/Home";
};

我们将问题定位为 Microsoft Ajax 中发生.js并找到了以下解决方案:火狐 6 无限页面刷新与页面与哈希标签

相关内容

  • 没有找到相关文章

最新更新