2014-11-06 71 views
13

我想在window.location.href鏈接改變時觸發一些javascipt函數,這有可能嗎?onchange event on window.location.href

類似:

$(window.location.href).on('change', function(){ 
    doSomething(); 
}); 
+1

時出現了變化錨部分即?如果你需要你的代碼在導航之前運行,你可以使用'beforeunload'。來源:http://stackoverflow.com/questions/2073086/javascript-how-to-intercept-window-location-change – ntzm 2014-11-06 21:07:51

+0

更改事件只觸發了一些輸入元素(textarea,select,input) – Brennan 2014-11-06 21:08:26

+5

我懷疑他問這個因爲他正在改變網址。我發現這個問題的原因是類似的。 – Axle 2015-01-16 18:14:07

回答

38

哎呀傢伙,去容易對OP。當他說'類似'時 - 示例代碼足以知道他需要事件處理程序。

Mozilla docs:爲什麼你會需要這個

window.onbeforeunload = function(e) { 
    return 'Dialog text here.'; 
}; 
+0

注意,這不會檢測到一些位置事件,如[hashchange](http://stackoverflow.com/questions/680785/on-window-location-hash-change)或[歷史操作](http:// stackoverflow。 COM /問題/ 824349 /修改最網址沒有,重裝浮頁)。 – cregox 2017-05-14 01:41:19

4

hashchange事件發生後#

window.addEventListener('hashchange', function() { 

    alert("Hash Changed"); 
    } 
+0

這是一個僅限代碼的答案。僅有代碼的答案可能有效,但會自動標記爲低質量。請爲此代碼的工作原理添加簡短說明,或者錯誤是什麼。 - [來自評論](https://stackoverflow.com/review/low-quality-posts/17604650) – 2017-10-12 10:09:53