Skip to content

DNET_BrowserCloseButtonEvent

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

WWWブラウザの[×]ボタンのイベントをハンドルする。

概要

  • 出来ない模様。
  • 出来たら、ブラクラで悪さされるので。

詳細

  • ≒[×]ボタンのイベントに、
    以下の様なコードは書けるが任意コードを実行できない。

    window.addEventListener('beforeunload', (event) => {
      // Cancel the event as stated by the standard.
      event.preventDefault();
      // Chrome requires returnValue to be set.
      event.returnValue = '';
    });
    • 上記のコードを実装した場合、下記のダイアログが表示される。

      preventDefaultダイアログ

    • ここに任意コードを追加実装した場合、
      このダイアログ自体が表示されなくなる。

    • また、beforeunload周辺の実装は、
      ブラウザによってマチマチらしい。

  • こように、八方塞がり感あるが、

    • 子画面が閉じられたことを親画面側から検知すれば、
      実現したいことが実現できるかも知れない。

    • 参考

      • JavaScript - 子画面が閉じたことを親画面側で
        検知させる方法(イベント)|teratail.html
        https://teratail.com/questions/170829

        let childfunc = ()=>{
          console.log("child is closing");
        };
        win = window.open("");
        $(win).on("unload", childfunc);

参考

Web API | MDN

補足:現在の主要ブラウザでは event.returnValue への代入は非推奨で、 event.preventDefault() のみで確認ダイアログが表示される。 また、ユーザ操作(スティッキー・アクティベーション)が無いページでは ダイアログ自体が抑制される。

移行メモ

  • 本文の「こように」は原文ママ(「このように」の脱字と思われる)。
  • 元 Wiki の行頭空白によるプレフォーマット・ブロックは、 フェンス付きコードブロックにした。

Tags: 移行, WWWブラウザ, beforeunload, onbeforeunload, JavaScript, イベント, ブラクラ

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally