我有一個取消按鈕時調用的用戶到另一個頁面重定向:IE異常,如果beforeunload事件中止頁面重定向
function onCancelButtonClick() {
document.location.href = settings.cancelUrl;
}
我也有在beforeunload事件的事件處理程序如果存在未保存的更改,請在離開頁面前提示用戶確認:
function onPageUnload() {
//If the changes were already saved then there is no need to prompt the user for confirmation before leaving the page.
if (eventDataSaved)
return;
//If the page has unsaved changes ask for confirmation before leaving the page.
if (hasTheGridRecordsBeenChanged() || formHasUnsavedChanges)
return "You have unsaved changes";
}
這適用於鍍鉻。但是,IE會在onCancelButtonClick事件處理程序方法中拋出異常,只要用戶在提示時選擇停留在頁面中的選項。
我在2009年和2010年看到了一些SO的帖子,建議只是增加一個try catch來解決這個問題,我相信我們都可以同意這不是一個理想的解決方案。所以我想知道在過去的幾年中是否有人想出一個更優雅的方法來解決這個IE問題。
我相信在這種情況下,try/catch是IE的唯一解決方案 - 而且最有可能會永遠支持它。儘管如此,我會很樂意被證明是錯誤的。 –