クロムプラグインの作成を試していますMessage Passing。 私のコードは次のとおりです。バックグラウンドスクリプトからコンテンツスクリプトに渡すChrome拡張メッセージが機能しない
manifest.jsonを:
{
"name": "Sending Messages Test",
"version": "1.0",
"manifest_version": 2,
"description": "Send a Message to background.js from contentscript.js and send reply",
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_title": "That's the tool tip",
"default_popup": "popup.html"
},
// "permissions": ["tabs"],
"content_scripts": [{
"matches": ["http://*/*", "https://*/*"],
"js": ["contentscript.js"]
}]
}
popup.html:
<script type="text/javascript" src="popup.js"></script>
<div style="width:200px">
<button id="button">Color all the divs</button>
</div>
popup.js:
window.onload = function() {
document.getElementById("button").onclick = function() {
// alert("in popup.js");
chrome.extension.sendMessage({
message: "coming from popup"
});
}
}
contentscript.js
chrome.runtime.onMessage.addListener(function(request, sender) {
alert("Contentscript has received a message from from background script: '" + request.message + "'");
return true;
});
background.js:
var backgroundScriptMessage = " purple monkey dishwasher";
chrome.extension.onMessage.addListener(function(request, sender) {
alert("Background script has received a message from contentscript:'" + request.message + "'");
returnMessage(request.message);
});
function returnMessage(messageToReturn) {
chrome.tabs.query({active: true}, function(tabs) {
var joinedMessage = messageToReturn + backgroundScriptMessage;
alert("Background script is sending a message to contentscript:'" + joinedMessage +"'");
chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"});
});
}
私はChromeの拡張機能でプラグインを解凍し、生成されたアイコンをクリックすると、私は2つのアラート
- 背景スクリプトがcontentscriptからメッセージを受信した参照してください。 'ポップアップから来る'
- バックグラウンドスクリプトは、「ポップアップから来ている」という内容のメッセージからメッセージを受け取りました。紫色の猿食器洗い機
であり、contentscriptにある3番目のポップアップは表示されません。私はエラーを探してみましたが、運はありませんでした。誰かが解決策を持っていますか?現在アクティブなタブを照会する場合
この行のコメントを外しましたか?["permissions":["tabs"]、? – rafaelcpalmeida
また、background.jsファイルは何ですか? – rafaelcpalmeida
私は '' permissions ''をコメント解除しようとしました:["tabs"]、 '、動作しませんでした –