9

Estoy tratando de pasar datos de una ventana emergente a un script de contenido, pero no estoy teniendo suerte. Aunque lo tengo para trabajar al revés (contenido -> popup). Todo lo que quiero hacer es ingresar texto en una entrada ubicada en la ventana emergente y hacer clic en un botón de enviar que insertaría ese texto en el dom de una página web.Extensión de Chrome - Mensaje que pasa de Popup a Content Script

Esto es lo que tengo:

popup.html

chrome.extension.sendRequest({action:'start'}, function(response) { 
    console.log('Start action sent'); 
}); 

contentscript.js

function startExtension() { console.log('Starting Extension'); } 

function stopExtension() { console.log('Stopping Extension'); } 

function onRequest(request, sender, sendResponse) { 
    if (request.action == 'start') 
     startExtension() 
    else if (request.action == 'stop') 
     stopExtension() 
    sendResponse({}); 
} 

chrome.extension.onRequest.addListener(onRequest); 

Respuesta

10

Es necesario especificar a qué ficha para enviar a. De esta manera:

chrome.tabs.sendMessage(tab.id, {action:'start'}, function(response) { 
    console.log('Start action sent'); 
}); 

Si no sabe cuál es la pestaña, puede enviar a todos (probablemente una mala idea) o hacer la pestaña enviar información en primer lugar.

Para obtener más información, consulte esta página: Message Passing.

+7

Solo quiero señalar que sendRequest ha quedado en desuso desde Chrome 20, y ha sido reemplazado por sendMessage, que fue la razón por la que tuve problemas con esto. Más información en esta respuesta http://stackoverflow.com/a/11587062/381010 – Joris

+0

Actualicé mi respuesta. –

Cuestiones relacionadas