我正试图通过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
将是:
但最新的Chrome和Firefox中的“hashchange”事件不会触发。我在Web控制台中什么都看不到。但是,如果我手动将位置栏中的网址更改为https://www.google.com/#q=orange,或者我通过location.href = "https://www.google.com/#q=milk"
更改了网址,则会触发。为什么呢?
P.S。当您在搜索字段中点击“Enter”时,www.google.com不会重新加载。实际上我是为浏览器插件而做的,仅为了简单起见而提到了Web控制台。
答案 0 :(得分:3)
Google更改为使用history.pushState,它不会触发onhashchange事件。