2

「選択」機能を備えた拡張機能を作成しようとしています。ユーザーがページ上の任意の要素をクリックして、その xpath を表示できるようにします。

ただし、使用できるようにするには、要素をクリックしても反応しないようにする必要があります。ハイパーリンクをクリックして別のページに移動したり、フォームを送信するボタンなどを使用したりしたくありません。

どうすればいいですか?

UPD:Chromeにのみ必要です

4

4 に答える 4

4

body私の意見では、最もクリーンな方法は、キャプチャフェーズで1 つのイベント ハンドラーをバインドし、イベントの伝播/デフォルトの動作を防ぐことです。

クリックした要素への参照を取得するには、次のようにしevent.targetます。

document.body.addEventListener('click', function(event) {
    event.preventDefault();
    event.stopPropagation();
    console.log(event.target);
}, true);

利点は、他のどのイベント ハンドラーがページ内の要素にバインドされていても、このイベント ハンドラーが最初にトリガーされることです (もちろん、ページが同様のイベント ハンドラーを にバインドしている場合を除きbodyますが、通常、イベント ハンドラーは にバインドされます)。バブリング段階)。

詳細については、quirksmode.org - イベントの順序MDN -addEventListenerを参照してください。

デモ

于 2013-06-22T19:29:26.653 に答える