現在、拡張機能がロードされているページでデフォルトのクリックアクションが発生しないようにするために、クロム拡張機能を使用しています。通常、私はちょうどデフォルトのアクションを防ぐために、以下のようなものだろう:イベントバブリングと伝播の階層
$('.some-element').click(function(e){
e.preventDefault()
// some other code
});
を私は拡張子で、ここで同じアプローチを使用していますが、私は何を見つけることだと、時々、これが機能し、他の回ではないということです。たとえば、ページの領域にある<a>
タグにpreventDefaultが既にバインドされているサイトにアクセスした場合、そのウェブサイトのpreventDefaultは、自分のイベントが実行されないようにします..
クリックイベントは機能します - 最初に読み込まれた関数は常に最初に起動しますか?もしそうなら、私のイベントが常に最初に始まるように、イベントに階層を課すことができるので、ページにロードされている他のアクションを防ぐことができますか?
ページは一時的にしか私はそれらを再度バインドすることはできません場合、私は完全に適していない可能性がありますすべてのイベントをバインド解除のアプローチを無効にする必要に既に存在しているアクション..
おかげ
あなたがイベントに私をクリックして聞くためにJavaScriptコードを注入していると言っています他の人のウェブサイトのChromeのデベロッパーコンソールを想定していますか?私はあなたのウェブサイトと他のウェブサイトの両方に言及した方法を混同しています。あなたがしようとしていると思っていることをしようとしているなら、私はそれがうまくいくとは思わない。 –
基本的には、私のコンテンツスクリプトを通してページに挿入するコードを介して、ウェブサイト上でデフォルトのonClickイベントが発生しないようにしようとしています。そこから私は自分の関数を使っていくつかのことをしたいと思っています。これまでのところうまくいきましたが、すでにイベントがある場合、私は言ったように.preventDefaultはウェブサイト上の要素に設定されています。event.peventDefaultは私のコンテンツスクリプトを介してページに注入したevent.preventDefaultとは違って起動します。私は一度私のウェブサイトに言及しているとは思わない...クロムの拡張子だ –
ウィンドウの最上位のDOMオブジェクトにmousedownリスナを付け、addEventListenerのuseCaptureパラメータにtrueを指定すると、キャプチャの開始時にイベントをインターセプトするウィンドウからクリックターゲットまでのフェイズこのコードは、ターゲットのマウスダウンの前に実行されます。また、document_startで実行されるコンテンツスクリプトでそれを行うと、そのページを上書きすることはできません。 – wOxxOm