ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript_javascript スキルにおける IE の fireEvent メソッドの詳細な分析

JavaScript_javascript スキルにおける IE の fireEvent メソッドの詳細な分析

WBOY
WBOYオリジナル
2016-05-16 17:14:011116ブラウズ

IEではfireEventメソッドが用意されており、その名の通りイベントを発生させることを意味します。最初は onclick() を使うのと同じだと思っていましたが、意外にも最近 JavaScript の入門書を書いているときに発見しました。 JavaScriptについてはまだまだ細かい部分がマスターできていない部分がたくさんあるようです!

次に、独自の概要に基づいて、fireEvent メソッドの使用法を詳細に記録します。 fireEvent は IE によって提供されるメソッドです。msdn ドキュメント アドレス: http://msdn.microsoft.com/en-us/library/ms536423(v=vs.85).aspx

onclick()
まず最初のコード例を見てみましょう:


  • 私も一人です;
  • ='id2'>私は 2 人です;
  • 私は 3 人です;
button onclick='document.getElementById("id1").onclick();'>クリックしてください!

このコードには、onclick イベントを追加するための id1 の li がありません。ボタンをクリックすると、「オブジェクトはこの属性またはメソッドをサポートしていません。」というメッセージが表示されます。 DOM.onclick() を使用するには、onclick イベントを追加する必要があることがわかります。

上記のコードを次のように変更すると、

  • 私もその一人です;

  • 私は 2 人です;

  • 私は 3 人です;
    < ;/ul>


    この時点では、ボタンをクリックすると onclick イベントがトリガーされますが、ul の onclick はトリガーされません。これは、DOM.onclick() にバブリングがないことがわかります。

    fireEvent()

    fireEvent と onclick() が同じイベントをトリガーするかどうかを見てみましょう。以下のコードを見てください:

    • 私も一人です;
    • ='id2'>私は 2 人です;

    • 私は 3 人です;
    button onclick='document.getElementById("id1").fireEvent("onclick")'>fireEvent !

    ボタンをクリックした後、ul の onclick イベントがトリガーされ、fireEvent がバブリングを引き起こすことを示します。また、onclick() のような「オブジェクトはこのプロパティまたはメソッドをサポートしていません」というプロンプトは表示されません。これは、onclick がid1 のイベントは追加されないため、バブルアップする可能性があります。
    このことから、IE の fireEvent メソッドは、単に onclick ではなく、ユーザーのマウス クリック動作をシミュレートすることに似ていることがわかります。


    fireEvent と onclick の違いの概要

    上記の例からわかるように、DOM fireEvent と onclick (これは単なる代表例です) には次のような違いがあります。 :
    Onclick では、実際に onclick イベントを追加するために DOM が必要です。追加しないと、「オブジェクトはこの属性またはメソッドをサポートしていません」というエラーが報告されます。
    Onclick は IE のバブリング プロセスを引き起こしませんが、fireEvent はバブリングを引き起こし、fireEventユーザーの実際の動作トリガーに近い
    2 番目の記事から、fireEvent は DOM にクリック イベントがない場合でもエラーを報告せずに fireEvent を実行できます (ユーザーの実際の動作に近くなります)

    最後に、テストできます次のコードを使用します:



    • 私もその一人です;
    • 私は 2 人です;
    • 私は 3 人です;

      < ;/ul>


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。