ページ上のテキストを置き換える Chrome 拡張機能が必要です。すべてのコードは Javascript 側で動作しており、ページが読み込まれると完全に実行されます。問題は、ツールバーのボタンをクリックしたときにページ上のテキストを置き換えることだけです。
ツールバーにボタンを設定しましたが、代わりの Javascript は、ボタンをクリックしたときではなく、ページが読み込まれたときに実行されます。さらに、ツールバーのボタンをクリックした瞬間に、何もしていないにもかかわらず、ポップアップ ウィンドウのフラッシュが表示されます。私がやりたいことは、popup.html ボックスを表示せずに、ツールバー ボタンをクリックしたときにテキスト置換コードを実行することだけです。
現在のコードは次のとおりです。
マニフェスト.json
{
"name": "Browser Action",
"version": "0.0.1",
"manifest_version": 2,
"description": "Show how options page works",
// Needed to retrieve options from content script
"background": "background.html",
// This is how you load Browser Action. Nearly equal to Page one.
"browser_action": {
"default_icon": "icon.png",
"popup": "popup.html"
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js" : ["popup.js"]
}
]
}
popup.js
function htmlreplace(a, b, element) {
if (!element) element = document.body;
var nodes = element.childNodes;
for (var n=0; n<nodes.length; n++) {
if (nodes[n].nodeType == Node.TEXT_NODE) {
var r = new RegExp(a, 'gi');
nodes[n].textContent = nodes[n].textContent.replace(r, b);
} else {
htmlreplace(a, b, nodes[n]);
}
}
}
htmlreplace('a', 'IT WORKS!!!');
popup.html - 空白
background.html
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null, {file: "popup.js"});
});