2012-02-07 7 views
4

私はウィキペディアの記事のGoogle検索結果を確認し、後で少し余分なリンクを追加する少しの拡張をしようとしています。しかし、検索結果を解析するのに少し問題があります。非常にシンプルです。Googleの検索結果を解析するためのChrome拡張機能

マニフェスト:

{ 
"name": "Test", 
"version": "0.1", 
"description": "Test Test", 
"icons":{ 
    "128":"icon_128.png" 
    }, 
"permissions": [ 
    "tabs", 
    "http://www.google.com/*", 
    "https://www.google.com/*" 
], 
"content_scripts": [ 
    { 
     "matches": ["http://www.google.com/*", "https://www.google.com/*"], 
     "css": ["style.css"], 
     "js": ["jquery-1.7.min.js", "injector.js"], 
     "run_at": "document_end" 
    } 
], 
"manifest_version": 2 
} 

とインジェクタ:

function findWikipediaLinks(){ 
console.log("here I am!"); 
console.log($('a')); 
//.css({'background-color': 'yellow'}); 
} 

findWikipediaLinks(); 

問題は、実際の検索結果が表示される前に、ここでコードが実行されることのようです。 (ログイン結果は、Googleのヘッダーバーでのです。時間への道は、このpropperly?

+0

DOMが準備されているときにコードを実行しようとしましたか?jqueryでは、次のようにすることができます: '$(function(){/ * code here * /}); ' – MMM

+0

@MMMええ - まだ同じ結果を出す:( – Tim

+0

ちょうどuggestion、Googleインスタント検索結果では、AJAXを使用してコンテンツが読み込まれます。おそらくそのイベントを傍受する必要があります。数秒ごとに実行されるループはどうですか? – MMM

答えて

4

Googleはあなたがevent listenerDOMNodeInsertedのイベントを使用する必要があるので、AJAXを経由して結果をロードしています。

function filterResultInserts(event) { 
    console.log(event); 
} 

target.addEventListener('DOMNodeInserted', filterResultInserts); 

あります

+0

ああ完璧です。乾杯。 – Tim

+0

@Timでも同様の実装をしようとしていますが、最終的なコードがありますか? – pqn

+0

@PremN。しばらく前ですが、js/jqueryを使用して上記のようにDOMノードを挿入した後に結果を解析できることを覚えています。残念ながら、私はまだコードを持っていません。ごめんなさい。 – Tim

関連する問題