我正在使用jquery click事件在hashmark之后设置URL。 URL设置正确,但当我使用浏览器后退按钮时,它不会将我带到上一页。
在点击事件之前,网址如下所示:
http://example.com/menu.php?home
我的点击事件如下所示:
$('#visits').click(function() {
$('#main').load("visits.php?type=1&view=1", function () {
location.href = "#visits";
});
return false;
});
我的网址现在看起来像这样:
http://example.com/menu.php?home#visits
似乎没有使用浏览器后退按钮调用menu.php。
知道我缺少什么吗?
答案 0 :(得分:1)
使用窗口的onhashchange事件来检查哈希值是否发生了变化。当您点击浏览器的后退按钮时,会调用此方法。
$(window).bind('hashchange',function() {
if (location.hash != '#visits') {
//Code to revert the changes on the page
}
}
答案 1 :(得分:1)
较旧版本的IE不支持hashchange,因此您必须使用setInterval作弊,每秒轮询几次并检查它是否已更改。
if($.browser.msie && $.browser.version < 7){
setInterval(function(){
if(window.location.hash != window.lastHash){
hashChangeHandler();
window.lastHash = window.location.hash;
}
}, 100);
}
else{
$(window).bind('hashchange',function() {
if (location.hash != '#visits') {
hashChangeHandler();
}
}
}
答案 2 :(得分:1)
您可以使用以下代码编写代码:
var _hash = ''; function myHashChangeCallback(hash) { // handle hash change // load some page using ajax, etc } function hashCheck() { var hash = window.location.hash; if (hash != _hash) { _hash = hash; myHashChangeCallback(hash); } } setInterval(hashCheck, 100);