2012-04-25 22 views
1

ブラウザ/ウィンドウが閉じる前に次のjsを使用してポップアップを表示しています。しかし、それは動作していないようです。ブラウザウィンドウが閉じる前にjQueryポップアップを表示

表示しようとしているポップアップはprettyPopinです。 #beforecloseは、ウィンドウがアンロードされる前にクリックイベントをバインドしようとしているアンカーのIDです。私は、ネイティブのjsポップアップは動作するが、jQueryのポップアップは動作しないことに気付いた。

私は何をしたいのか達成する方法はありますか?私はjsの専門家ではないので、私に説明したり、それぞれのリンクを紹介したりしてください。

ありがとうございます。

答えて

3

安全に行うことはできません。

onbeforeunloadは、ユーザーがページから離れないように設計されています。あなたがするべき唯一のことは、なぜユーザーがページを離れたくないのかもしれないというメッセージの文字列を返すことです。このメッセージは、ユーザunless he's using firefoxに表示されます。

+0

我々はこれを他の方法?提案してください。 – xmaestro

+0

いいえもしあなたがそれらの制限の目的を破ることができたら、それはありませんか? – ThiefMaster

+0

それで、ネイティブのjsアラートだけでも、フローの実行を停止できることを理解するのは正しいですか?カスタムポップアップでこれを行う方法はありませんか?物事を自分ではっきりさせる;) – xmaestro

0

jQuery documentationから

$(window).bind('beforeunload', function(e) { 
    $('#beforeclose').click(); 
    e.preventDefault(); 
    return false; // just in case.. 
}); 

にそれを変更してみてください:

event.preventDefault()

説明:このメソッドが呼び出された場合、イベント のデフォルトのアクショントリガーされません。

基本的に、あなたはbeforeunloadイベントにポップアップを表示する機能を結合しているが、それは警告ウィンドウまたはそのような何かのように、ブラウザをブロックしません。 event.preventDefault()を使用すると、イベントフローの実行を停止します。

+0

'beforeunload'は次のように動作しません。彼がページを出るかどうかを知りたい場合は、(firefoxではない)文字列を返すことができます。 – ThiefMaster

+0

何かを返す高尚な男が窓を閉じないようにします。しかし、もし私がそのページを離れたいと思っているのか、それとも私に言い聞かせているのか、私はそのメッセージを望んでいません。私はちょうど私のjqueryポップアップが欲しい。道があれば教えてください。 – xmaestro

+0

私の答えを見てください。それをしてはいけない。 – ThiefMaster

1

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

<script type="text/javascript"> 
     $(function() { 
     function confirmmsg() { 
      return "Mail Not sent"; 
     } 
     window.onbeforeunload = confirmmsg; 

     }); 
</script> 
+0

DOMを準備完了イベントでそのコードを正確にラップするのはなぜですか? – ThiefMaster

関連する問題