2010-01-15 371 views

回答

24

可以使用beforeunload事件來觸發你的代碼運行導航之前...如果你需要更具體的(例如,僅在啓動代碼導航),在東西n我建議您將代碼更改爲window.location作爲單獨的函數,併爲您的自定義邏輯添加一個鉤子。

+0

這是否適用於單頁面應用程序?在Angular和其他SPA框架中,URL更改但頁面不卸載/重新加載,因此我不知道此事件是否觸發。 – 2015-08-07 15:25:54

+0

通常框架提供自定義事件以獲取位置更改 – Nobita 2016-03-10 14:08:56

+1

@CarlG,在單頁面應用程序中,如果URL散列已更改,則可以使用'onhashchange'來註冊處理程序。 – shuangwhywhy 2016-09-08 08:07:04

14

你可能想看看本納德爾的帖子關於這樣做,可能你在後談判尋找什麼

Binding Events to non DOM objects with jQuery

他的榜樣關於創建一個事件處理程序觸發更改事件時window.location改變

+7

實際上,解決方案似乎是'setInterval'並定期檢查。 – 2016-05-12 15:45:54