2017-08-14 21 views
4

私のChromeブラウザを誤って閉じてしまい、作業していたすべてのタブを再度開いて再読み込みする必要があります。クロムはクローズのメカニズムの前に確認が組み込まれていないので、閉じる前に確認を求める簡単なページを書いた。私はそのページを他のタブに開いたままにします。Chromeのアップデート後にJavaScriptが動作しない

<!DOCTYPE html> 
<html> 
    <body> 
    <p>This page is to prevent accidental closing of Chrome.</p> 
     <script language="JavaScript"> 

      window.onbeforeunload = function() { 
       return "Are you sure?"; 
      }; 
     </script> 
    </body> 
</html> 

最近私はChromeブラウザをバージョン56から60にアップデートしました。コードを閉じる前に確認を求められなくなったため、コードが機能していないように見えるようになりました。私はインターネットから多くの異なるバリエーションを試しましたが、どれもうまくいかないようです。

注:私はウェブ開発に非常に新しいです。 MDN docsによると

+0

コンソールエラーが発生しましたか? –

+0

@LewisBrowne No. – zindarod

答えて

3

ページがと相互作用されていない限り、一部のブラウザではbeforeunloadイベントハンドラで作成されたプロンプトを表示しない、不要なポップアップを戦うために。いくつかはそれらをまったく表示しません。

特に、 Chrome 60には明示的にその最初の動作があるため、機能が動作するとは限りません。 notesから:

クローム60からのフレームは、それがユーザのジェスチャやユーザーとの対話を受信した(または埋め込まれたフレームは、このようなジェスチャーを受信して​​いる場合)を表示しようとした場合以降、beforeunloadダイアログにのみ表示されます。

この方法を使い続けるには、セッションのある時点でページとやり取りする必要があります。

また、Chromeを再起動したときに開いていたすべてのタブを開くには、Ctrl-Shift-Tを押してみてください。

+2

はい、これはChrome 60の変更/廃止の中で特に言及されています。https://developers.google.com/web/updates/2017/06/chrome-60-deprecations#require_user_gesture_for_beforeunload_dialogs – DarthJDG

+0

はい、ページ内のテキストを強調表示した後に閉じると、確認ボックスが表示されます。これを自動化する方法はありますか? – zindarod

+0

もちろん、いくつかのやりとりを自動化するために[Selenium](http://www.seleniumhq.org/projects/webdriver/)のようなものを使うことができると思います。しかし、実際には、私はあなたがする必要はないと思います - あなたがウィンドウを開くときに前のタブを開くことによって、あなたが '中断したところから続けることができます。 'chrome:// settings'ページをチェックして、これが有効になっているかどうか確認してみてください。 –

関連する問題