0

ブラウザ拡張機能を使用して、既存のページに機能を追加したいと考えています。要素には、その onclick イベントにバインドされた関数が既にあるとします。その要素の onclick に新しい関数をバインドしています。以前にそのイベントにバインドされた他のすべての関数の前に関数を実行したいと考えています。関数の実行が完了するまで、実行を開始したくありません。

JavaScript でこの方法で新しい関数をバインドする方法を知りたいです。

4

1 に答える 1

0

あなたは本当にできません。イベント リスナーは通常、要素にアタッチされた順序で実行され、既に追加されたものを取得することはできません。プラグインが他のリスナー追加コードの前に実行されない場合、できる限り早くイベント ディスパッチ プロセスに入ることが唯一のチャンスです。

私が考えることができる最善の方法は、dom の最高点にキャプチャ フェーズのリスナーを追加することです。

document.documentElement.addEventListener("click", function(e) {
    if (e.target == theElementInQuestion) // or check for e.target.id...
        // do something with the event like
        e.stopImmediatePropagation();
}, true /* sic! */);
于 2012-06-27T00:35:51.587 に答える