2017-08-29 12 views
0

私は複雑なフォーム(多くのフィールド、タブ...)を持っていて、ページを離れるときに警告する警告メッセージを表示したいのですが、 (編集フォームで、設定したすべての必須フィールドを持っていますが、値を変更したりすることはできませんので)天気を、彼は、フォームまたはないを掲載しました。現在のブラウザでページを閉じる前のカスタムメッセージ

私は警告メッセージ​​を変更し、とにかく他のブラウザのために働いていませんでしたが、私はページ変更の前にメッセージを表示したいと思いますが、の可能性は私が前にそれを表示したいということを見てきました実際のデフォルトのChrome/FF、IE ...ポップアップアラート

私はthis situationで多かれ少なかれにいませんが、答えは私が

をした this question

から、51

だから、もはや関連のポストクロームがある

(function ($) { 
    'use strict'; 

$(window).bind('beforeunload', function(e) { 
    e.preventDefault(); 
    $('<div title="Attention !">Vous souhaitez quitter cette page. Avez-vous enregistré les données du formulaire ? Si non, choisissez "rester sur la page" lors de l\'affichage de l\'alerte.</div>').dialog({ 
    modal:true, 
    close: function(){$(this).dialog('destroy').remove();}, 
    position: { my: "center top", at: "center", of: window } 
    }); 
    return "Random message to trigger the browser's native alert."; 
}); 

}(jQuery)); 

the fiddle

を見ます

は、これは、ブラウザの警告AFTER jQueryUIの警告メッセージが表示されますので、それは実際には使用されません。

このjqueryアラートを表示するには、ブラウザの2017年以降の実際のブラウザアラートの前にどうすればよいですか? は、あなたが試みることができるあなたに

答えて

1

別の実装を感謝:

<html> 
    <head> 
    <script type="text/javascript"> 
     var hook = true; 
     window.onbeforeunload = function() { 
     if (hook) { 
      return "Did you save your stuff?" 
     } 
     } 
     function unhook() { 
     hook=false; 
     } 
    </script> 
    </head> 
    <body> 
    <!-- this will ask for confirmation: --> 
    <a href="http://google.com">external link</a> 

    <!-- this will go without asking: --> 
    <a href="anotherPage.html" onClick="unhook()">internal link, un-hooked</a> 
    </body> 
</html> 
+0

(2018年頃)Chromeバージョン63で、これは動作します。 「あなたのものを保存しましたか?」という警告が表示されるのではなく、Chromeのデフォルトのメッセージ「変更を保存できません」が表示されます。私は回避策があると確信していますが、私にとっては、デフォルトのメッセージで十分です。 – Chuck