Chrome 拡張機能は初めてで、始めるのに少し苦労しています。
まず第一に、私の全体的な目標は、ポップアップでボタンをクリックして、DOM に何かを変更できるようにすることです。私の理解が正しければ、これを行う方法は、コンテンツ スクリプトをロードし、このコンテンツ スクリプトにメッセージを送信することです。これは、Chrome 開発者ページを見たときに得たものですが、コンソール ログには何も表示されません。
マニフェスト.json
{
"manifest_version": 2,
"name": "Test",
"version": "1.0",
"permissions": [
"tabs", "http://*/*"
],
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["content.js"]
}
],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
}
}
popup.html
<html>
<body>
<script src="popup.js"></script>
</body>
</html>
popup.js
document.addEventListener('DOMContentLoaded', function () {
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendMessage(tab.id, {greeting: "hello"}, function(response) {
console.log(response.farewell);
});
});
});
content.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log(sender.tab ?
"from a content script:" + sender.tab.url :
"from the extension");
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
});
このコードの多くはドキュメントから直接引用しているため、何が間違っているのかわかりません。