2016-06-15 6 views
6

次のコードスニペットを使用して、ページを閉じる前にアラートをトリガーしますが、Chromeはメッセージを無視してデフォルトメッセージ「このサイトから退出しますか?デフォルトのメッセージの代わりにメッセージを表示するにはどうすればよいですか?アラートページが閉じる前に:Chromeのデフォルトメッセージを変更するにはどうすればよいですか?

window.onbeforeunload = function(e) { 
    e.returnValue = "A search is in progress, do you really want to stop the search and close the tab?"; 
    return "A search is in progress, do you really want to stop the search and close the tab?"; 
} 
+0

カスタムメッセージには、それは彼らがカスタムメッセージを許可するかどうか、ブラウザ・ベンダーの間で変化し、クロム50 – guest271314

+0

で表示されます。サポートしていない場合は、何もできません。 – charlietfl

答えて

0

アップデート:Chromeで非推奨https://developers.google.com/web/updates/2016/04/chrome-51-deprecations?hl=en

次のことを試してみてください。私はChromeで取得

window.onbeforeunload = function (e) { 
    e = e || window.event; 

    // For IE and Firefox prior to version 4 
    if (e) { 
     e.returnValue = 'A search is in progress, do you really want to stop the search and close the tab?'; 
    } 

    // For Safari 
    return 'A search is in progress, do you really want to stop the search and close the tab?'; 
}; 

メッセージ(カスタムおよびデフォルトの両方):

A検索が進行中です。本当に検索を停止したいのですか? タブを閉じますか?

本当にこのページからおきたいですか?

ソースjsFiddle

+2

Chromeで廃止予定:https://developers.google.com/web/updates/2016/04/chrome-51-deprecations?hl=ja –

+1

@Kairat Your jsFiddleはカスタムメッセージを表示しません:Chrome 51.0.27 –

+0

@Dominiqueありがとうございます。そのとおりです! –

1

私は最近Chromeがonbeforeunloadの動作を変更していたことに気づきました。私は主なブラウザ(Chrome、Firefox、IEでテストされ、何らかの理由でjsFiddleがFirefoxでは動作しませんが、私のウェブサイトは動作します)で動作する回避策を見つけました。 jQuery UIを使用すると、現在のページを離れる理由が問題になる理由についての詳細を示すページを終了するときに、ダイアログウィンドウを表示させることができます。

window.onbeforeunload = function (e) { 
    $('<div title="Warning!">A search is in progress, do you really want to stop the search and close the tab? If not, choose "Stay on page" on the browser alert.</div>').dialog({ 
     modal:true, 
     close: function(){$(this).dialog('destroy').remove();} 
    }); 
    return "Random message to trigger the browser's native alert."; 
} 

jsFiddle here

+4

Chrome 51以降は動作しません。 –

関連する問題