2012-04-25 24 views
39

gmailのようにページを離れる前に確認を求める方法を教えてください。タブ/ブラウザを閉じる前の確認

私は様々な場所でこの質問を探し、彼らが言及しているすべてのJavaScript window.unload & window.onbeforeunloadの使用です。また、ブロックされるとほとんどの時間クロムで動作しません。

+1

何を試しましたか?何が失敗するのですか? – Joseph

+0

私はwindow.unload&window.onbeforeunloadを試しましたが、必要に応じて動作しませんでした。 –

+0

[タブを閉じる前に確認してください](http://stackoverflow.com/questions/2452963/confirm-box-before-closing-a-tab) –

答えて

74

これを試してみてください:

ここ
<script> 
window.onbeforeunload = function (e) { 
    e = e || window.event; 

    // For IE and Firefox prior to version 4 
    if (e) { 
     e.returnValue = 'Sure?'; 
    } 

    // For Safari 
    return 'Sure?'; 
}; 
</script> 

は作業jsFiddle

+1

これは、ユーザのクリックから発生しているため、このブラウザでは無効になりません。 – gopi1410

+0

ありがとうございます!これが私の必要なものです。 btw、フィドルのデモが大好き、まさに私が欲しいもの。 –

+0

こんにちは..あなたのコードは動作していますが、ユーザーがブラウザの閉じるボタンをクリックしたのか、ナビゲーションボタンをクリックして他のページに行ったのかを区別することはできません。 – user3217843

6

はこれを試してみてくださいです:ここMDN

<script> 
    window.onbeforeunload = function(e) { 
     return 'Dialog text here.'; 
    }; 
</script> 

詳細。

1

回答セットのコメントをとして読んでいいです。です。ほとんどのユーザーは、ボタンとリンクのクリックが許可されるべきであると尋ねています。ここでもう1つの行が既存のコードに追加されます。ボタンを許可したいリンクについて

<script type="text/javascript"> 
    var hook = true; 
    window.onbeforeunload = function() { 
    if (hook) { 

     return "Did you save your stuff?" 
    } 
    } 
    function unhook() { 
    hook=false; 
    } 

コール係止解除()のonClick。例えば。

<a href="#" onClick="unhook()">This link will allow navigation</a> 
関連する問題