浏览器后退按钮未更新页面
我正在使用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(); } } }