script matches make how google extension example create content chrome javascript google-chrome-extension content-script

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!