Manul Tech

IE11でのonload / onpageshowイベント

ブラウザバック時の制御をしたくてonpageshowイベントを設定してるのに、いつも通りIE11だけ言うことをきかない。発火したり、しなかったり挙動が不安定。

本当はIEなんて無視したいんだけど、依頼主がIE使ってるからしょうがない。
ググってみたところ、ようやく以下のページを発見。

月間ぬにふちさか
IEでjQueryのwindow loadが動かない

この情報はonloadイベントだけど、onpageshowイベントにも同じことが言えそう。

$(() => {
    $(window).on('pageshow', () => {
        //  動作したりしなかったり
    });
});
$(() => {
    //  document ready
});

$(window).on('pageshow', () => {
    //  動作したー!!!
});

jQueryのバージョンが3.0以上の場合は、document readyの中にwindow load / pageshowを書かないように、との事。IE以外では動作してたけど、きっとこっちの方がいいんだろう。

何でもかんでもdocument readyの中に書いちゃいがちだけど、勉強になりました。

コメント0