2016-09-07 7 views
0

とき、私は設定ページが読み込ま:var lock = 0;カスタムonbeforeunloadメッセージ

を私は、彼らが自分のページを閉じて、保留中のアクションを持ってしようとしている場合は、ユーザーに警告を提供したい場合は、1にロックに変更。別の警告が必要な場合は、2に変更することがあります。 lockが0に設定されている場合、ユーザーがページを閉じると警告メッセージは表示されません。

これは、ロック設定に関係なく、ユーザーがページから離れたときに私のカスタム警告メッセージを表示します。

window.onbeforeunload = function(){ 
return 'Are you sure you want to leave this page?'; 
} 

これは、ロックが1または2の場合にのみ表示されますが、私のカスタム警告メッセージは表示されません。

window.onbeforeunload = function(){ 
if(lock == 1) return 'Are you sure you want to leave this page?'; 
else if(lock == 2) return 'Bad things will happen if you close this page!'; 
} 

条件付きカスタム警告メッセージを表示する方法はありますか?関数内に 'return'以外のものがあれば、デフォルトのメッセージが使われているようです。

+0

あなたは、少なくともFirefoxでcustimメッセージを表示カント - 他のブラウザでは、あなたの走行距離は、これは間違いなくだまされやすい人である –

+0

を変更することがあります。http://stackoverflow.com/questions/276660/how-can-をi-override-the-onbeforeunload-dialog-and-with-my-own?rq = 1 – wally

答えて

2

Chrome 51から起動すると、ウィンドウのonbeforeloadプロパティはカスタム文字列をサポートしなくなりました。

参考:https://developers.google.com/web/updates/2016/04/chrome-51-deprecations?hl=en#remove-custom-messages-in-onbeforeload-dialogs

+0

「Firefox 4、Chrome 51、Opera 38、およびSafari 9.1以降、一般的な文字列は、たとえば、Firefoxは、「このページはあなたが残したいことを確認するように要求しています - 入力したデータは保存されないかもしれません」という文字列を表示します。バグ588292とChromeプラットフォームステータスを参照してください。 - https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload – wally

関連する問題