2010-01-14 27 views
10

He estado buscando en la web para saber cómo acceder a las pestañas actuales DOM para extraer información de una página de background.html. Hasta ahora no he tenido suerte, o al menos nada de lo que podría trabajar correctamente.Google Chrome Extension - Accediendo a DOM

Para indicar el problema simplemente. Me gustaría obtener src de un iFrame en la página. ¿Alguna sugerencia?

Respuesta

7

De una manera, se trata esto como una única solicitud de una sola vez al script de contenido que buscará el dominio al que desea acceder. http://code.google.com/chrome/extensions/messaging.html#simple

Básicamente, la secuencia de comandos contenidos configura el detector de:

chrome.extension.onRequest.addListener(
    function(request, sender, sendResponse) { 
    if (request.greeting == "hello") 
     sendResponse({farewell: "goodbye"}); 
    else 
     sendResponse({}); // snub them. 
    }); 

Y tu página de fondo envía una única petición duración:

chrome.tabs.getSelected(null, function(tab) { 
    chrome.tabs.sendRequest(tab.id, {greeting: "hello"}, function(response) { 
    console.log(response.farewell); 
    }); 
}); 

Al enviar su respuesta, enviarla como Datos JSON, puede buscar lo que desee (como html, dom, texto, etc.).

Esa es actualmente la única forma de que la página de fondo sepa algo sobre el contenido de una página. Recuerde que necesitaría scripts de contenido y permisos de pestañas.

+8

Tenga en cuenta que esta respuesta no está actualizada. 'SendRequest' y 'getSelected' están en desuso. La secuencia de comandos proporcionada no funciona. – sbichenko

+4

aaa y debe reemplazarse con sendMessage/onMessage en Chrome 20 –

+1

aaaaa y un ejemplo sería excelente. :-) – Ajax

Cuestiones relacionadas