为了模仿传统的“后退”行为,我附加了某些URL哈希存在的操作。捕获散列的删除
麻烦的是,如果你从哈希返回,哈希将从URL字符串中删除,但JavaScript不会收到该哈希已经消失。
我该如何让它拿起散列的去除?
为了模仿传统的“后退”行为,我附加了某些URL哈希存在的操作。捕获散列的删除
麻烦的是,如果你从哈希返回,哈希将从URL字符串中删除,但JavaScript不会收到该哈希已经消失。
我该如何让它拿起散列的去除?
投票window.location.href
检测变化的散列部。使用更改来确定需要还原的内容。看到How can I detect an address bar change with JavaScript?
检查window.location.hash
字符串,它会回报你的网址
通常点击先去,然后位置变化。 点击后设置TimeOut 以获得更新的window.location.hash是一个好主意,如下所示。
$(".nav").click(function(){
setTimeOut(function(){
updatedHash = location.hash
},100);
});
,或者你可以监听与位置:
window.onhashchange = function(evt){
updatedHash = "#" + evt.newURL.split("#")[1]
};
我写了一个jQuery插件,确实像你想要做什么。 https://github.com/rgarro/Route32这是一个简单的锚点路由器。
尝试hashchange事件('onhashchange') – noob 2012-01-17 14:11:29