none
ie11のonunloadイベントについて RRS feed

  • 質問

  • windowxp、ie8で作成していたアプリを

    window10、ie11に作り替えているのですが、

    ie11で、onunloadのイベントが、ieを閉じる際に動作しなくなってしまう。

    <body onunload="alert('test');">

    F5などのリロードであれば動作するが、

    ieの右上にある、×などで閉じる際に

    上記のような実装した場合に、

    アラートが表示されない。

    画面を閉じる際に不要となったデータを

    削除することが目的のため、

    onbeforeunloadイベントに変更することはできない。

    ie11でieを閉じる際に動作する

    javascriptはonunload以外で実現する方法はありますでしょうか?

    2019年8月5日 7:04

すべての返信

  • onunload だと行っている処理のタイミングによっては正常に完了しない可能性がある(先にページが閉じられてリソースがなくなってしまう)可能性がある(保証されているのはリソースの削除より前にイベントが発火すること)ので、タイミングに依存するのかもしれません。

    違うやり方としては onunload ではなくイベントリスナーで unload イベントにリスナーを付けるとかでしょうか。


    Hebikuzure aka Murachi Akira

    2019年8月5日 7:26
    モデレータ
  • 回答ありがとうごさいます。

    引き続きこちらで確認して以下の結論となりました。

    ie8とie11では、onunload内で出来ることに差異があることがわかりました。

    サンプルとして、alert関数を利用していましたが、

    ie8ではalert関数は動くが、ie11では動かない。

    試しに、alertの箇所をwindow.openにした場合は、

    ie11でもonunloadが動作していた。

    実際にonunloadでしたい処理内に、

    ie8では動作していたが、ie11で動かない箇所を

    特定し対応するしかなさそうです。

    ちなみに、イベントリスナー方式でも

    同じ結果でした

    2019年8月6日 2:06