0

JavaScript を DOM に追加して動的に読み込みます。

JavaScript の最後に、スクリプトが完了した残りのコードに警告するカスタム イベントを作成したいと考えています。

ここに私が持っているものがあります:

Su.throwEvent = function(){
    var load_complete = document.createEvent("HTMLEvents");
    load_complete.initEvent( "focus", true, false );
    document.getElementById( 'ue_email' ).dispatchEvent( load_complete );
};

ユーザー入力であると関連付けたため、これは機能しませんue_email...したがって、ユーザーが入力に焦点を合わせるたびに、イベントが発生します。

カスタムの「非表示」イベントを作成する正しい方法は何ですか?

私はここを見ています:

https://developer.mozilla.org/en-US/docs/DOM/document.createEvent

ありがとう。

4

1 に答える 1

1

onchange非表示の入力コントロールのイベントにバインドできます。

これは問題なく動作するはずであり、確かに簡単ですが、DOM のイベント システムをハイジャックすることは、私にはちょっとしたハックのように思えます。イベント リスナー関数のグローバル配列を作成し、読み込まれたスクリプト内からそれらを呼び出します。

if (window.loadedListeners) {
    loadedListeners.forEach(function(listener) {
        listener();
    });
}

Array.forEach()IE7 と IE8 をサポートする場合は、そのメソッドを含めるために手動で Array を拡張する必要があることに注意してください。developer.mozilla.org で実装を使用できます。

于 2012-10-10T22:01:01.473 に答える