ユーザーがSafari / Chromeでウィンドウを閉じているときに確認ダイアログをポップアップできますか?

StackOverflow https://stackoverflow.com/questions/803887

質問

IEおよびFFでは、イベントハンドラーをonBeforeUnloadにアタッチできます。イベントのプロパティに文字列を渡すことで、ユーザーに「アンロード」を続行するかどうかを尋ねるダイアログが表示されます。 (ウィンドウを閉じるか、別の場所に移動します)。

SafariとChromeはonBeforeUnloadをサポートしておらず、onUnloadは遅すぎるようです。 Safari / Chromeで同じ機能を複製する方法はありますか?

注:ユーザーを人質にしようとはしていません。これはしつこくてかっこいいことを知っています。実際、私のサイトはユーザーが自由に移動できるように最大限の努力を払い、戻ってきたときにすべてをその場所に置いています。 ただし、私は他のサイトをIFrames内でホストしており、これらのサイトが私を追い払ってブラウザを引き継ぐことを決定する場合があります。

ありがとう!

役に立ちましたか?

解決

これは、ChromeとSafariの両方で完全に機能します。

<html><body><p>Test</p>
<script>window.onbeforeunload = function() { return "Sure?"; }</script>
</body></html>

ウィンドウを閉じようとすると、プロンプトが表示されます。

他のヒント

StackOverflow自体は onbeforeunload を使用し、Safariでは正常に動作します:

function setConfirmUnload(a){window.onbeforeunload=a?function(){return a}:null}

クロムでチェックしましたが、これを使用して正常に動作しているようです:

<body onunload="alert('x');" onbeforeunload="test1();">

この質問は、もう1つの新しいStackOverFlow質問でもう少し詳しく説明します。 ChromeおよびIEのbody要素でonbeforeunloadを設定jQuery

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top