2017-03-10 3 views
0

私は誰もがこれを憎んでいることを知っています。しかし、私は1つのことから離れてそれをしたい方法で動作する終了ポップを持っています。私はポップアップにメッセージを追加する方法が不思議に思っていました。「あなたはこのサイトを離れたいですか? - あなたが行った変更は保存されないかもしれません。ここに私のコードがあります。 (フォーマットが悪いので申し訳ありません)カスタム終了のポップテキスト

<script type="text/javascript"> 
    (function() { 
    var __redirect_to = 'http://www.example.com'; 

    var _tags = ['button', 'input', 'a'], _els, _i, _i2; 
    for(_i in _tags) { 
     _els = document.getElementsByTagName(_tags[_i]); 
     for(_i2 in _els) { 
     if((_tags[_i] == 'input' && _els[_i2].type != 'button' && _els[_i2].type != 'submit') || _els[_i2].target == '_blank') continue; 
     _els[_i2].onclick = function() {window.onbeforeunload = function(){};} 
     } 
    } 
    window.onbeforeunload = function() { 
     setTimeout(function() { 
     window.onbeforeunload = function() {}; 
     setTimeout(function() { 
      document.location.href = __redirect_to; 
     }, 500); 
     },5); 
     return '1'; 
    } 
    })(); 
</script> 

これは可能ですか?プロンプトテキストの両方の行を変更できますか?誰かが手伝ってくれるかどうか私に教えてください。前もって感謝します。

+0

ネストされたbeforeunload?あなたはonbeforeunloadでブラウザをリダイレクトすることはできません....そしてbrosersはテキストを設定する機能を削除しました。 – epascarello

+0

@epascarelloあなたはこれを書くためのよりよい方法を考えることができますか? –

+0

ブラウザが終了しないようにする方法はありません。そうではありません。 – epascarello

答えて

2

あなたはもうonbeforeunloadダイアログでは、しかし、あなたはできない最も最近のブラウザでカスタムテキストを設定することができるように使用される:

は、Firefox 4、クロム51、オペラ座38とSafari 9.1以降では、返された文字列の代わりにWebページの制御下にない一般的な文字列が表示されます。たとえば、Firefoxでは、「このページは退出することを確認するように要求しています。入力したデータが保存されない可能性があります」という文字列が表示されます。 bug 588292およびChrome Platform Statusを参照してください。

2011年5月25日以降、HTML5仕様では、このイベント中にwindow.alert(),window.confirm()、およびへの呼び出しが無視される可能性があることが記載されています。詳細は、HTML5 specificationを参照してください。

(出典:MDN: window.onbeforeunload)それの内部リダイレクトと

+0

ありがとう@frxstrem –

関連する問題