[英]Why hashchange event doesn't fire on www.google.com?
我正试图通过www.google.com在每次搜索时执行我的JavaScript代码。 当我搜索例如“stackoverflow”这个词时, location.href
看起来像:
所以location.search === ""
和location.hash === "#q=stackoverflow"
。
然后我在Web控制台中写道:
window.addEventListener("hashchange", function () {
console.log("hash changed");
}, false);
然后,如果我在搜索字段中键入例如“banana”并点击“Enter”,则location.href
将为:
但是“hashchange”事件不会在最新的Chrome和Firefox中发布。 我在Web控制台中什么都看不到。 但如果我将位置栏中的网址手动更改为https://www.google.com/#q=orange ,或者我通过location.href = "https://www.google.com/#q=milk"
更改网址,则会触发location.href = "https://www.google.com/#q=milk"
。 为什么?
ps当您在搜索字段中点击“Enter”时,www.google.com不会重新加载。 实际上我是为浏览器插件而做的,仅为了简单起见而提到了Web控制台。
谷歌改为使用history.pushState,它不会触发onhashchange事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.