我需要在Internet Explorer(6,8和9)窗口關閉時處理,以便詢問他對其的確認。我嘗試了unbeforeunload
,但是,正如你所知道的那樣,當任何鏈接被點擊時,它也被觸發,o表單被引用。有些人可以說使用事件鼠標座標,但有幾種方法可以打破這種驗證(例如Alt + F4)。當點擊鏈接並檢查是否在事件中時,還有一種方法可以將某些變量設置爲true,但這也不起作用,因爲我在頁面上有很多不同的鏈接,並且在某些情況下會多次觸發事件。
此外,我試圖解決這個問題,使用框架,如:使2幀,把我的頁面到一個框架,並與其他(零大小)處理器頁面onbeforeunload
。這將工作得很好,但我們使用一組環境js,我們無法阻止下載,並且這些腳本刪除頁面上的任何幀,將整個頁面放在主窗口中 - 失敗...
任何人都可以,請提出其他建議嗎?在javascript中處理IE窗口關閉事件
回答
如果您打算使用onbeforeunload(聽起來是正確的),您應該設置一個標誌,以便該事件只會詢問是否有理由留在頁面上。
var hasChanges = false;
window.onbeforeunload = function() {
if (hasChanges) {
return "You have changes that will be lost if you continue leaving the page";
};
};
然後你只需給變量設置爲true(hasChanges = true
)如果有一個理由留在頁面上...所以,如果一切都沒有改變,你的點擊其他鏈接不會觸發對話框。
咋,但是如果有什麼改變了,我點擊了一些不會離開頁面的鏈接 - 我會再次得到這個消息。我在頁面上有很多 – Egor 2011-04-20 12:01:50
你可以在這些事件之前輕鬆地清除標誌... – davidsleeps 2011-04-20 22:58:38
@Egor,等等,你是什麼意思點擊頁面內的鏈接導致這個?你的意思是回傳? – davidsleeps 2011-04-20 22:59:29
- 1. 關於窗口關閉事件的javascript
- 2. 在Swift中處理窗口的關閉事件
- 3. 處理JFileChooser窗口關閉?
- 4. 在Java中處理和關閉窗口
- 5. 使用onclick事件關閉JavaScript窗口
- 6. 在窗口上處理虛擬鍵盤關閉事件10
- 7. 如何處理窗體關閉事件
- 8. 窗口關閉事件
- 9. Extjs窗口關閉事件
- 10. Javascript關閉時處理mouseover事件
- 11. Javascript關閉/事件處理噩夢
- 12. 處理一個退出的MonoMac /關閉窗口事件
- 13. 關閉模式彈出式窗口的事件處理程序
- 14. 在javascript中關閉父窗口時如何關閉子窗口?
- 15. 處理IE窗口中的ActiveX組件
- 16. 在多個窗口中處理事件
- 17. 在JavaScript中捕獲彈出窗口的關閉事件
- 18. javascript中的關閉窗口
- 19. JavaScript中的窗口關閉
- 20. 關閉Pyglet中窗口的事件
- 21. 爲什麼在關閉WebBrowser.DocumentCompleted處理程序的窗體時彈出IE窗口
- 22. SDL_PeepEvents不會處理窗口關閉
- 23. 關閉javafx窗口處理程序
- 24. 是否可以在事件處理程序中關閉窗體,其中事件處理程序在類中?
- 25. 關閉窗口中的灰燼事件關閉
- 26. 處理事件「Excel正在關閉」
- 27. 確保在關閉瀏覽器窗口時處理某些事件
- 28. 嘗試強制關閉JavaScript窗口時未處理重定向
- 29. WPF - 處理窗口關閉所有者窗口
- 30. 在javascript中關閉創建的窗口
通常,對於一個正在關閉的窗口的反應是你首先應該避免的,因爲 - 正如你注意到的 - 這是非常不可靠的。你應該重新設計你的網頁/應用程序,這樣就沒有必要。窗戶關閉時你需要做什麼? – RoToRa 2011-04-20 12:53:56
好吧,重點是 - 我不想這樣的檢查;但客戶確實如此。我覺得他們只是想避免錯誤的窗口關閉,以免「泄露未保存的數據」。我們會試圖說這不是更好的方法,但直到那個時候我們正在嘗試尋找解決方案。 thanx您的建議 – Egor 2011-04-20 13:03:06
好吧,如果它只是爲了警告用戶,它可能會使用。點擊鏈接時設置變量是正確的方法。該事件以何種方式觸發多次? – RoToRa 2011-04-20 13:07:58