我在Firefox中遇到hashchange事件的问题。我们正在使用Ben Alman提供的JQuery hashchange插件。代码如下。
$(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使用的是某些我不知道的奇怪行为吗?或者是否只是隐藏了一些其他问题?
答案 0 :(得分:0)
在某些浏览器中,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";
};
答案 1 :(得分:0)
我们将问题发现在MicrosoftAjax.js中,并找到以下解决方案: Firefox 6 Infinite Page Refresh With Page With Hash Tags