7

Chrome拡張機能を作成してGoogle検索結果ページを変更したいと思います。コンテンツスクリプトを使用してこれを実行できることはわかっています。これを実行する機能があるからです。しかし、残念ながら失敗します。コードを書きました

$('h3.r').append('<b>a</b>')

または、DOM操作に関連する他の何かがすべて失敗しました。しかし、私が書いたばかりの場合

alert('aa')

また

document.body.style.backgroundColor='green'

、 できます。なんで?ちなみに、デバッグしたいのですが、開発ツールを開いても拡張コンテンツスクリプトが見つかりません。他の拡張機能のコンテンツスクリプトを見ることができます。

4

2 に答える 2

5

マニフェストのcontent_scriptsにjQueryを追加しましたか?

jQueryを使用する場合は、次manifest.jsonのように記述する必要があります。

 "content_scripts":[
        {
            "matches":["http://www.google.com/*"],
            "js":["jquery-1.9.1.min.js", "contentscripts.js"]
        }
]

OK、Google検索結果ページのページソースを読んだ後、私は問題が何であるかを知っていると思います:

GoogleはAJAXを使用して検索結果を読み込むため、クエリワードを変更して再度検索しても、ページは更新されません。そのため、検索結果にDOM要素を取得できません。

つまり、DOMNodeInsertedのイベントリスナーを追加する必要があります。

コードは次のようになります。

function findH3(){
  $('h3.r').append('<b>a</b>')

}

searchResultArea.addEventListener('DOMNodeInserted', findH3);
于 2013-03-01T03:34:40.357 に答える
0

ターゲットとするURLの権限をマニフェストファイルに追加します

{
 ---
    "permissions": [
        "https: //www.google.co.in/*"
    ]
 ---
}

参照

于 2013-03-01T06:33:32.387 に答える