如果URL具有哈希值并且用户按下地址栏中的Enter键(例如Chrome一样),是否有任何方法可以强制FF和Edge这样的浏览器重新加载页面? 或者在这种情况下也许我们可以处理一些JS事件?
P.S。我不能使用load hashchange
事件,因为如果用户两次按Enter键-hashchange
事件将不会触发。
P.S.S。弄清楚popstate
是在这种情况下最适合MS Edge的事件。
如果URL具有哈希值并且用户按下地址栏中的Enter键(例如Chrome一样),是否有任何方法可以强制FF和Edge这样的浏览器重新加载页面? 或者在这种情况下也许我们可以处理一些JS事件?
P.S。我不能使用load hashchange
事件,因为如果用户两次按Enter键-hashchange
事件将不会触发。
P.S.S。弄清楚popstate
是在这种情况下最适合MS Edge的事件。
如果单击Enter按钮,则可以尝试监听Keydown事件,方法是使用window.location.hash
检查url是否具有哈希值,然后使用location.reload()方法重新加载网页。
代码如下:
window.addEventListener('hashchange',function () {
console.log('The hash has changed!')
},false);
window.addEventListener("keydown",function (e) {
if (e.keyCode == "13") {
if (window.location.hash) {
// Fragment exists
alert("hashed");
location.reload();
} else {
// Fragment doesn't exist
alert("not exist");
}
}
},false);