6

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

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

注: ユーザーを人質にしようとしているわけではありません。私はこれがしつこくてクールでないことを知っています。実際、私のサイトは、ユーザーが自由に移動できるように、そしてユーザーが戻ってきたときにすべてが元の場所にあるように、あらゆる努力を払っています。しかし、私は IFrame 内で他のサイトをホストしており、時にはこれらのサイトが私を排除してブラウザーを乗っ取ろうとすることがあります。

ありがとう!

4

4 に答える 4

7

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

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

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

于 2009-04-29T20:00:40.413 に答える
2

クロムで確認したところ、これを使用して正常に動作しているようです:

<body onunload="alert('x');" onbeforeunload="test1();">
于 2010-12-09T14:02:20.333 に答える
2

StackOverflow 自体は を使用しonbeforeunloadており、Safari では問題なく動作します。

function setConfirmUnload(a){window.onbeforeunload=a?function(){return a}:null}
于 2009-04-29T20:23:20.610 に答える
1

この質問は、別の新しい StackOverFlow の質問でもう少し詳しく説明されています: Setting onbeforeunload on body element in Chrome and IE using jQuery

于 2011-10-18T18:18:42.147 に答える