55

保存されていない変更で Google ドキュメント タブを閉じようとすると、これがブラウザに表示されます (FF 3.5)。

このページから移動してもよろしいですか?

このドキュメントの変更は保存されていません。[キャンセル] をクリックしてから、[保存] をクリックして保存します。[OK] をクリックして破棄します。

[OK] を押して続行するか、[キャンセル] を押して現在のページにとどまります。

私の質問は、そのようなアラートが Web アプリ (gdocs など) の一部なのか、それともブラウザーによって発行されるのかということです。後者の場合、これはどのように行われますか?

4

2 に答える 2

86

ブラウザによって。ダイアログのカスタマイズされたテキストを返すのはbeforeunloadイベント ハンドラです。これは 3 つの段落の中間にすぎません。他の 2 つの段落とボタンのテキストは、カスタマイズしたり変更したりすることはできません。

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);
于 2009-08-17T17:19:59.130 に答える
-14

アラートは Web アプリケーションの一部です。ソース コードを表示し、javascript を確認します。

于 2009-08-17T17:15:12.540 に答える