javascript - matches - Extensión de Chrome: comunicación entre el script de contenido y background.html
make a google chrome extension (1)
sendRequest
/ onRequest
se reemplaza con sendMessage
/ onMessage
en Chrome 20. *Message
no es solo un alias para *Request
, es una API diferente.
Si desea soportar Chrome <20 (muchos usuarios de Ubuntu aún están en Chromium 18, porque el PPA no está actualizado), use onRequest
y sendRequest
. De lo contrario, use los *Message
métodos de *Message
.
Otro problema es que su función se encuentra en la página de fondo y la llamada se realiza en la ventana emergente. Estos son ámbitos diferentes, si desea llamar a un método de página de fondo desde la ventana emergente, use chrome.extension.getBackgroundPage()
:
chrome.extension.getBackgroundPage().testRequest();
Nota final: está utilizando manifest versión 1 y controladores de eventos en línea. Esta práctica está en desuso, para obtener más información, consulte http://code.google.com/chrome/extensions/manifestVersion.html .
Soy nuevo en las extensiones de Chrome. Estoy intentando comunicarme entre el script de contenido y la página background.html . El archivo background.html envía una solicitud, " hola ", al script de contenido y el script de contenido debe responder con una alerta de " fondo de saludo ". Pero simplemente no está sucediendo. Mi código background.html es:
function testRequest() {
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {greeting: "hello"});
});
}
Código content.js :
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "hello")
alert("hello background");
}
);
código popup.html :
<!doctype html>
<html>
<head></head>
<body>
<form>
<input type="button" value="sendMessage" onclick="testRequest()" />
</form>
</body>
</html>
manifest.json :
{
"browser_action": {
"default_icon": "icon.png",
"popup": "popup.html"
},
"background": {
"page": "background.html"
},
"permissions": [
"tabs",
"http://*/*",
"https://*/*",
"notifications",
"contextMenus"
],
"content_scripts": [
{
"matches": ["http://*/*","https://*/*"],
"js": ["content.js"]
}
],
"name": "FirstExtension",
"version": "1.0"
}
¡Por favor ayuda!