15

IE9 で次のエラーが発生します。

「オブジェクトはこのアクションをサポートしていません」。

これについてはさまざまな質問がありますが、私のものは特に次のコードです。

 var myEvent = new CustomEvent("additem");

私の理解でCustomEventは、DOM 操作コマンドとして IE9 でサポートされています。これは例外なく Chrome で正常に動作します。

誰もがこの問題を抱えていて、それを解決する方法を知っていますか? ありがとう。

4

4 に答える 4

20

Afaik カスタム イベントは IE ではサポートされておらず、通常のブラウザでのみサポートされています。Jquery のトリガーのようなブラウザーに依存しない実装を提供する JavaScript ライブラリを使用することをお勧めします: http://api.jquery.com/trigger/

于 2013-01-16T12:44:26.160 に答える
18

JavaScript 関数を使用して、ブラウザーが IE11 以下であるかどうかを検出し、次のポリフィルを適用できます。

    (function () {
      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;
    })();

上記のポリフィルは MDN から取得されます: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent

于 2014-04-08T19:22:03.317 に答える
6

ネイティブの (そして機能的な) CustomEvent メソッドを置き換えないこのポリフィルを試してください。

(function () {
  try {
    new CustomEvent('test');
    return;
  } catch(e) {
    // ignore this error and continue below
  }

  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;
})();
于 2015-11-13T00:03:43.067 に答える