當我試圖關閉我的Google文檔選項卡時未保存的更改時,這是我在瀏覽器中獲得的內容(FF 3.5)。從網頁導航時發出提醒
您確定要離開此頁面, ?
您在此 文檔中有未保存的更改。點擊取消立即,然後 '保存'來保存它們。點擊確定立即 丟棄它們。
按OK繼續,或取消至 停留在當前頁面。
我的問題是這些警報是否是網絡應用程序的一部分(例如gdocs),還是由瀏覽器發出?如果是後者,這是如何完成的?
當我試圖關閉我的Google文檔選項卡時未保存的更改時,這是我在瀏覽器中獲得的內容(FF 3.5)。從網頁導航時發出提醒
您確定要離開此頁面, ?
您在此 文檔中有未保存的更改。點擊取消立即,然後 '保存'來保存它們。點擊確定立即 丟棄它們。
按OK繼續,或取消至 停留在當前頁面。
我的問題是這些警報是否是網絡應用程序的一部分(例如gdocs),還是由瀏覽器發出?如果是後者,這是如何完成的?
通過瀏覽器。這是beforeunload
事件處理程序,它返回對話框的自定義文本,該文本只是三個段落的中間部分 - 其他兩個段落以及按鈕的文本不能自定義或以其他方式更改。
window.onbeforeunload = function(){ return 'Testing...' }
// OR
var unloadListener = function(){ return 'Testing...' };
window.addEventListener('beforeunload', unloadListener);
將產生一個對話框,說
Are you sure you want to navigate away from this page?
Testing...
Press OK to continue, or Cancel to stay on the current page.
您可以通過設置處理器爲null
window.onbeforeunload = null;
// OR
window.removeEventListener('beforeunload', unloadListener);
警報是Web應用程序的一部分。查看源代碼並查看javascript。
尋找 「onBeforeUnload」 抵消這一點。 – 2009-08-17 17:16:37
至少,我無法在Google文檔來源中看到它。 – 2009-08-17 17:22:08
它可能隱藏在一些不明顯的JavaScript文件中。 Google使用的腳本使其JavaScript文件基本上不可讀取給人類。 – ceejayoz 2009-08-17 17:31:41
感謝彼得。我研究了現代瀏覽器如何處理onbeforeunload事件併發布了我的發現。請添加您知道的任何其他複雜細節。 – 2009-08-21 17:39:52
嗨,彼得,難道我們無法利用事件產生自定義警報,它提供與本機窗口警報相同的功能嗎? – SexyBeast 2013-09-10 19:51:30
不是我知道的,沒有。 – 2013-09-10 21:48:23