2010-07-15 29 views
4

是的,我意識到這是糟糕的用戶界面和不好的可訪問性明智的,但我被迫尋找由於承包工作(我最初並沒有達成一致,並堅持)的選項。當用戶退出瀏覽器時顯示自定義對話框?

我知道,你可以指定一個事件處理onbeforeunload,如:

window.onbeforeunload = function() { 
    return 'You have unsaved changes!'; 
} 

這將帶來由OS /瀏覽器,不能自定義生成一個對話框。它會要求你取消你的請求或繼續。

到目前爲止,似乎我可以顯示任何自定義岬的唯一方法是通過在事件處理程序中插入window.open

window.onbeforeunload = function() { 
    var x = window.open('modal.html'); 
} 

這將最有可能得到阻止任何現代的瀏覽器作爲「彈出」 。我必須在對話框中顯示一個全新的頁面,但這似乎是滿足需求的唯一方法。

這幾乎是我唯一的選擇?除了強烈地告訴客戶,不建議這樣做?

唯一的其他選擇是依靠用戶點擊「取消請求」,然後插入對話框。

問題我已經已經看了看:

回答

1

透露我剛去的window.open路線onbeforeunload。

1

按照你已經看了看問題,你不能自定義對話框超越傳遞一個字符串消息由瀏覽器顯示。

window.onbeforeunload - MDC

-1

你可以使用一個隱藏的Flash .swf文件,你在onbeforeunload時間,而不是window.open

+0

儘管如何保持開放?它只是一個嵌入/對象元素? – 2010-07-15 15:19:18