我試圖通過www.google.com在每次搜索中執行我的JavaScript代碼。當我搜索例如單詞 「計算器」 location.href
樣子:爲什麼hashchange事件不會在www.google.com上觸發?
所以location.search === ""
和location.hash === "#q=stackoverflow"
。
然後我寫在Web控制檯:
window.addEventListener("hashchange", function() {
console.log("hash changed");
}, false);
然後,如果我輸入例如「香蕉」,在搜索領域,並點擊「進入」的location.href
將是:
但「hashchange」事件不會在最新的Chrome和Firefox火。我將在Web控制檯中看不到任何內容。但是,如果我手動將地址欄中的網址更改爲https://www.google.com/#q=orange,或者我通過location.href = "https://www.google.com/#q=milk"
更改了網址,它會觸發。爲什麼?
p.s.當您在搜索字段中按「Enter」時,www.google.com不會重新加載。其實我只是爲了一個瀏覽器插件而做的,並且只是爲了簡單而提到了Web控制檯。
您是否嘗試過使用不是Google的測試頁? –
@AtesGoral是的。如果在我的測試網頁上點擊「something」,hashchange事件就會觸發。 – traxium
但是,這是谷歌。你正在創建一個新的請求的表單字段中輸入。此時頁面將重新加載。除非你攔截表單提交事件,否則它會去,改變頁面,並且不會觸發任何哈希變化事件。 –