0

スタックオーバーフローに関する別の質問によると、クロム拡張機能の contentscript.py には次のコードがあります。

マニフェスト.js

{
"name": "test script",
"version": "0.1",
"content_scripts": [{
    "js": ["contentscript.js"],
    "matches": ["http://*/*"]
}],
"manifest_version": 2,
"web_accessible_resources": ["script.js"]
}

contentscript.js

var s = document.createElement('script');
s.src = chrome.extension.getURL('script.js');
(document.head||document.documentElement).appendChild(s);
s.onload = function() {
    s.parentNode.removeChild(s);
};

script.js

document.body.innerHTML = document.body.innerHTML.replace(new RegExp("this", "gi"), "that");

一部のテキストを単純に置き換えるため。script.js にあるのと同じ式をテスト html ファイルに配置すると、機能しますが、コードが実際に挿入されているように見えません。私は一生、理由を理解できません。マニフェストとコンテンツ スクリプトは順番にあるように見えるので、ここで何をすべきかわかりません。

4

1 に答える 1

0

manifest.json の一致に「https://*/*」を追加してみてください。次の最初の行を contentscript.js に追加することをお勧めします。

console.log('Content script loaded and started');

そのため、ページ (F12、コンソール タブ) を調べて、コンテンツ スクリプトが挿入されたかどうかを確認できます。デバッグに大いに役立ちます。

script.js で何が起こっているのかわかりませんが、タスクが完了する前に onload イベントで removechild が発生する可能性があることを考慮する価値があります。

于 2013-11-11T12:50:50.407 に答える