2012-01-14 9 views
2

DOMSubtreeModifiedイベントは非難されています(悲しいニュースです)。しかし、私はページ上のすべてのタグの変化を検出する方法があるのか​​疑問に思っていました(わかっています。その目的がある)。DOMSubtreeModified <a>タグのイベント(および/または置換)

基本的には、<a>タグ(ノード)が作成/変更されるたびに、その.hrefをすばやくスキャンして、探しているパターンと一致するかどうかを知りたいと思います(そうであれば、リダイレクトします私のJS(このリンクにナビゲートする代わりに、これとは無関係)を実行する)。私はこれを一般的にする必要があります(私はID/div /何も知らないのですが、彼らは<a href>であり、私が探している特定のURLパターンを持っています)。

パッチが当てられていますが、今はChromeの拡張機能としてのみ使用されます(すぐにFirefoxが来るので、私はそれを修正する必要があります)ので、今は大丈夫です。

追加の質問ありがとう!

+1

あなたはちょうど後でクリックを捕まえることができるときに修正を聞きますか?それがあなたが興味を持っている行動ならば、何かのために仕事をしたり、狩りをするのではなく行動を変えてください。 – Sinetheta

+0

私はjQueryのnoobです(何年も前に遊んでいませんでした)...移動する前に特定のタグをクリックする方法はありますか?私が探しているパターンに合った人にのみそれを行う方法はありますか? –

答えて

0

あなたが探しているパターンは何ですか?右の数字を<a>の「選択」するだけです.jQueryの属性はselectorsですまたはちょうどあらゆる機会については、 "で始まる"、 "で終わる"、 "含まれている"、 "等しい"、コメントを1として等...

$('a[href="http://notHere.com"]').on('click',function(event){ 
    alert("omg don't go there!"); 
    //window.location="http://www.goHere.com"; 
    event.preventDefault(); 
}); 

jsFiddle

あなたのページが動的に変更される場合は、イベントバインディングを常に存在するものに委譲し、ターゲットを含む必要があります。

$('body').on('click','a[href="http://notHere.com"]',function(event){ 
    alert("omg don't go there!"); 
    //window.location="http://www.goHere.com"; 
    event.preventDefault(); 
}); 

これは<body>のクリックハンドラを置き、そこから適切なアンカー上のクリックを監視します。もしあなたがもっと近づくことができるなら、それを手に入れてください。例えば:$('#mainContent')

+0

すべてのgCal招待状のリンクは、http://www.google.com/calendar/event?action = TEMPLATE'の後にイベントを説明する属性の区切りリストが続きます。 gCalにログインし、その時間/オファーが利用可能かどうかを確認してカレンダーに追加するJSスクリプトを作成しました。そのため、カレンダーのタイムスロットを見る必要はありません。クラスプロジェクトのためのもので、特定のウェブサイトでホストされていましたが、私はこれをChromeエクステンションにしたいので、あなたがナビゲートするどのページでも動作します:D –

+0

私はまた優先順位あなたの「フリータイム」カレンダーに1つのイベントがあり、新しいイベントが「仕事義務」カレンダーにあった場合、古いイベントを自動的に削除して新しいイベントを追加するように設定することができます。そのようなもの。それはかなり気高いスタンドアロンですが、私はしばらくの間拡張機能として動作させようとしていましたが、その一部が適切なリンクを盗聴できるようになっています –

+0

私はここで一つの問題を発見しました。スクリプトが読み込まれた後にDOMが変更された(リンクが生成された)場合、これはクリックを捕捉していません([link](http://www.google.com/googlecalendar/event_publisher_guide.html#toc-individual)参照)) 。そのフォームを使用してHTMLを生成すると、ページ/タブが読み込まれたときに挿入されたJSがイベントを捕捉しません。タブを変更して戻ってくると、期待どおりに動作します。 –

関連する問題