Ich versuche Chrome Plugin-Erstellung Message Passing. Mein Code ist wie folgt:Chrome-Extension-Nachricht von Hintergrund-Skript zu Inhalt Skript funktioniert nicht
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"});
});
}
Wenn ich das Plug-in Chrome-Erweiterungen entpacken, und klicken Sie auf das erzeugte Symbol, ich sehe 2 Warnungen
- Hintergrund Skript eine Nachricht von contentscript erhalten hat: 'kommt von Popup'
- Hintergrundskript hat eine Nachricht vom Inhaltsskript erhalten: 'vom Popup kommend' lila Affe Geschirrspüler
und das dritte Popup, das im Inhaltsverzeichnis vorhanden ist, wird nie angezeigt. Ich habe versucht, nach dem Fehler zu suchen, aber kein Glück. Hat jemand eine Lösung?
Haben Sie versucht, diese Zeile '//" Berechtigungen "auskommentieren: [" Tabs "],'? – rafaelcpalmeida
Auch, was ist Ihre background.js Datei? – rafaelcpalmeida
Ich habe versucht, '' Berechtigungen "auskommentieren: [" Tabs "],', es hat nicht funktioniert –