有沒有辦法做到這樣的事情:$(window).on("hashchange", doSomething);
但檢測到document.location.search
更改?javascript on document.location.search更改
2
A
回答
1
與散列發生的不同之處在於,如果由於用戶的操作而導致搜索值發生更改,您的頁面將重新加載。因此,你的選擇是使用onbeforeunload事件:
<body onbeforeunload="return myFunction()">
1
的hash
和search
標籤都具有不同的實現。當搜索字符串發生變化時,整個頁面被重新加載,但在hash
的情況下沒有。因此,如果您想對href更改進行一些處理,則可以使用onbeforeunload
事件處理程序。
你可以使用beforeunload事件來觸發你的代碼在導航之前運行......如果你需要更具體的東西(例如,只有在你的代碼中啓動的導航),那麼我建議你分解代碼更改窗口。定位到一個單獨的函數中,併爲您的定製邏輯添加一個鉤子。
爲了更好地理解,你可能想看看Ben Nadel的post關於這樣做,它可能正是你要找的。
1
這已在On - window.location.hash - change?中提出。簡而言之,在JavaScript中沒有完全乾淨的方式來做到這一點;你需要不時地檢查位置。一些框架和庫會爲你提供一個很好的抽象層,但在內部,他們只是繼續輪詢位置。
不幸的是,盧卡斯的回答不正確 - 您可以使用JavaScript歷史記錄API來修改當前的URL而無需重新加載頁面。
相關問題
- 1. 替換? from document.location.search
- 2. 設置參考document.location.search
- 3. JavaScript:更改href on卸載(或location.href更改)
- 4. .on更改與點擊
- 5. 從.live更改爲.on
- 6. Java:JFormattedTextField更改setGroupingUsed()on focusLost&focusGained
- 7. Ruby on rails,更改代碼
- 8. Ruby on Rails更改routes.rb
- 9. 更改dragzone on the fly
- 10. 在web.config中更改'magic_quotes_gpc = On'
- 11. Javascript框更改
- 12. 用JavaScript更改JavaScript
- 13. 使用javascript,如何更改不透明度ON和OFF?
- 14. javascript on updatepanel
- 15. 更改在Javascript
- 16. 更改Javascript setInterval
- 17. 更改JavaScript的
- 18. JavaScript更改css
- 19. 更改JavaScript源
- 20. 更改JavaScript函數
- 21. Javascript - onsmitmit on pageload
- 22. Odoo POS javascript on change
- 23. xpages dojo過濾器選擇部分更新on更改
- 24. Validation not Javascript on Javascript
- 25. Javascript on Rails
- 26. Firefox selectedIndex on hover上的選定更改
- 27. 更改加密密碼(Ruby On Rails)
- 28. mysqli.reconnect = ON更改連接編碼?
- 29. 更改body onLoad on img點擊
- 30. 更改版本的Ruby on Rails
@dmitrymar不會嘗試更改URL而不重新加載。相反,他試圖檢測由於用戶的行爲而導致的更改,在這種情況下,History API將毫無用處。 –