我已经为URL哈希的存在附加了某些操作,以模仿传统的“后退”行为。
问题是,如果你从散列中返回,则会从URL字符串中删除散列,但 JavaScript 不会接收该散列已经消失。
如何让它获取哈希的删除?
答案 0 :(得分:1)
通常先点击,然后点击位置。 点击后最好设置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这是一个简单的锚路由器。
答案 1 :(得分:0)
检查window.location.hash
字符串,它将返回您网址的哈希部分
答案 2 :(得分:0)
轮询window.location.href
以检测更改。使用更改来确定需要还原的内容。见How can I detect an address bar change with JavaScript?