所以我看到很多人推荐隐藏的iFrame
hack jQuery history plugin,但我真正需要的只是这种技术的另一半:
function whenItemIsClicked()
{
window.location.hash = this.id;
//some other stuff, like Ajax
}
//and then, if page is reloaded...
$(document).ready(function(){
var loc = window.location.hash;
//if there happens to be a hash, navigate to corresponding content
if(loc != '') $(loc).click();
});
这两项工作都很棒。现在,我想附上这两行
var loc = window.location.hash;
if(loc != '') $(loc).click();
到一个事件,但似乎没有一个将由后退按钮一致触发。有没有办法添加将保存当前URL的浏览器历史状态,以便上述技术可以工作?
答案 0 :(得分:2)
有一个名为window.onhashchange
的活动虽然不是每个人都支持它,但是... there's a plugin by Ben Alman来解决这个问题。
该插件使用window.onhashchange
(本机事件)使其在跨浏览器中工作(如果存在)。如果没有,它会轮询每50ms并触发事件本身,如果哈希值发生变化。使用the plugin,您的代码将如下所示:
$(window).hashchange(function() {
var loc = window.location.hash;
if(loc != '') $(loc).click();
});
您只需在一个地方使用该代码即可。您可以在document.ready
中触发一次,只需触发事件就像上面那样绑定事件:
$(function(){
$(window).hashchange();
});