頁面卸載可能有不同的原因:
1用戶關閉當前窗口。
2用戶導航到其他位置。
3單擊後退,前進,刷新或主頁按鈕。
4用戶提交表單,然後瀏覽器開始卸載當前頁面並載入頁面,並提交表單結果。 (假設當前窗口是窗體的目標)。
5等等...
我可以以某種方式知道onunload的處理程序卸載的原因是第4頁,即移動到頁面提交表單的結果嗎?
我可以在提交表單時定義一些標誌,但這並不能解決問題。由於來自Web服務器的響應(在表單提交上)需要一些時間,因此瀏覽器不會立即卸載當前頁面並等待來自服務器的響應。在此期間,用戶可能會關閉窗口或在任何地方導航。我需要知道它是否真的轉向結果頁面或其他內容......?如何在IE的onnload事件中獲取頁面卸載的原因?
2
A
回答
1
您可以劫持其中的一些事件。
例如,對於鏈接,您可以添加在鏈接的事件處理程序,節省了他們的href
屬性,執行您需要什麼,然後設置window.location
到href
你已經保存在一個變量。
0
頁面卸載的確切原因無法在卸載處理程序中知道。 OnUnload事件不是一個標準,並且首先由IE實現。
不同的瀏覽器可能會以不同的方式處理它,並針對不同的情況觸發事件。
所以,如果你想知道在卸載處理程序卸載的原因,我想你可能是出於運氣。然而,正如Alex在他的回答中指出的那樣,通過點擊頁面上的某個鏈接,您可以通過讓這些鏈接的點擊處理程序更加智能化,來了解用戶是否可以從頁面導航。
相關問題
- 1. asp.net中的頁面卸載事件
- 2. Cordova頁面卸載事件
- 3. 在IE中緩慢卸載頁面
- 4. 如何獲取Chrome中頁面加載事件的通知?
- 5. 如何卸載IE插件
- 6. 更改頁面後卸載事件
- 7. 內容頁面卸載事件
- 8. 在IE瀏覽器中,onbeforeunload事件被解僱,鏈接不會卸載頁面
- 9. 如何獲取datacontext在窗口卸載事件後面的代碼
- 10. 頁面卸載事件在FireFox中可用不在Chrome中
- 11. 如何獲取Spring Security中的AccessDeniedException的「原因」/原因?
- 12. 如何從Facebook獲取頁面事件?
- 13. JSF中的頁面卸載事件處理
- 14. 停止頁面在beforeunload事件處理程序中卸載
- 15. Javascript - 在卸載/頁面隱藏事件中調用AJAX
- 16. 如何獲得並從每當頁面被刷新或卸載window.onbeforeunload事件
- 17. 在Phonegap中卸載事件
- 18. HTML頁面卸載不會總是在IE中調用
- 19. XUL事件:新頁面加載/獲取頁面內容
- 20. Symfony2:在頁面加載事件監聽器中獲取路由
- 21. 的Javascript卸載頁面條件
- 22. 在safari中獲取擴展卸載事件
- 23. 卸載HTML頁面
- 24. ASP.NET MVC - 在頁面卸載
- 25. 如何在IE插件的子域中獲取IFrame的頁面源碼
- 26. 如何獲取FacesException的根本原因?
- 27. 如何獲取禁止(')的「原因」?
- 28. 卸載事件不會在IE中觸發window.open
- 29. 獲取Facebook頁面的事件?
- 30. 獲取Facebook頁面的事件
謝謝,但我需要抓住所有案例......或者一個案例 - 移動到提交結果頁面。目前我使用框架(即onunload事件在主窗口上,表格在主窗口內框架中),但這種方法也有缺點。 – 2010-04-27 05:56:18