浏览器后退按钮未更新页面

我正在使用jquery click事件在hashmark之后设置URL。 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; }); 

我的url现在看起来像这样:

 http://example.com/menu.php?home#visits 

看起来似乎没有使用浏览器后退按钮调用menu.php。

知道我错过了什么吗?

你可以编写这样的代码:

 var _hash ='';

 function myHashChangeCallback(hash){
     //处理哈希变化
     //使用ajax等加载一些页面
 }

 function hashCheck(){
     var hash = window.location.hash;
     if(hash!= _hash){
         _hash = hash;
         myHashChangeCallback(散列);
     }
 }

 setInterval(hashCheck,100);

使用窗口的onhashchange事件来检查哈希是否更改。 当您点击浏览器的后退按钮时会调用此方法。

 $(window).bind('hashchange',function() { if (location.hash != '#visits') { //Code to revert the changes on the page } } 

较旧版本的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(); } } }