2019-04-08

IE11でEventのdispatchができなかった場合の対応方法


以下のように指定elementにsubmitイベントをdispatchする処理だが、IE11ではうまく動作しなかった。

1
2
var element = document;
element.dispatchEvent(new Event('submit'));

https://developer.mozilla.org/ja/docs/Web/API/Event

上記ドキュメント内のブラウザ毎の対応表を見るとどうやらEventインターフェイス自体はIE11は装備しているみたいだが、コンストラクタがなかった。

仕方なく下記のようにして対応。

1
2
3
4
var element = document;
var event = document.createEvent('Event');
event.initEvent('submit', false, true); 
element.dispatchEvent(event);

※この実装自体は非推奨でかつ以後動作しなくなる可能性があるので注意が必要