1. ホーム
  2. internet-explorer-9

[解決済み] Internet Explorer 9, 10, 11 イベントコンストラクタが動作しない。

2022-05-24 09:49:15

質問

イベントを作成するので、DOM Eventコンストラクタを使用してください。

new Event('change');

これはモダンブラウザでは問題なく動作しますが、Internet Explorer 9, 10 & 11では、次のように失敗します。

Object doesn't support this action

どのようにすれば Internet Explorer を修正できますか (理想的には polyfill を介して)? できない場合、使用できる回避策はありますか?

どのように解決するのですか?

このページには CustomEventコンストラクタのIEポリフィルがMDNにあります。 . IEにCustomEventを追加し、代わりにそれを使用すると動作します。

(function () {
  if ( typeof window.CustomEvent === "function" ) return false; //If not IE

  function CustomEvent ( event, params ) {
    params = params || { bubbles: false, cancelable: false, detail: undefined };
    var evt = document.createEvent( 'CustomEvent' );
    evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );
    return evt;
   }

  CustomEvent.prototype = window.Event.prototype;

  window.CustomEvent = CustomEvent;
})();