2012-05-30 7 views

Respuesta

9

Para obtener la ventana objeto DOM de una tabid, se debe insertar una secuencia de comandos contenidos en esa pestaña:

chrome.tabs.executeScript(tabId, {code:'var w = window; console.log(w);'}); 

https://developer.chrome.com/extensions/tabs#method-executeScript

Tal vez tendrá que comunicarse con su página de fondo:

https://developer.chrome.com/extensions/content_scripts#host-page-communication

+1

Esto no tiene sentido. Esto solo registrará el objeto de la ventana en la consola y lo copiará a otra variable. No devuelve nada – qwerty

+0

Esta respuesta es completamente inútil a menos que agregue una devolución de llamada. Algo así: chrome.tabs.executeScript (nulo, {código: "var w = ventana; w"}, función (resultados) {console.log (resultados [0]);}); Sin embargo, debido a la seguridad, muchos de los elementos de la ventana no están disponibles, por lo que aún tendrá que usar la secuencia de comandos de contenido/mensaje que pasa la API para hacer algo funcional. – runfaj

9

El objeto de la ventana como se ve en el interior extensiones de cromo:

chrome.tabs.get(YOUR_TAB_ID_HERE, function(tab){ 
     chrome.windows.get(tab.windowId, function(win){ 
      console.log(win); // THIS IS THE WINDOW OBJECT 
     }); 
}); 

Pero si usted necesita el tiempo de ejecución de Javascript dentro de una pestaña específica, usted necesita usar scripts de contenido que son mejores explica aquí:

http://code.google.com/chrome/extensions/content_scripts.html

+1

Espera, ¿es "ganar" el objeto de ventana de una vista, o el objeto de ventana de una ventana que contiene varias pestañas? Estoy tratando de obtener el objeto ventana de una vista. – trusktr

+1

'win' es la ventana que contiene pestañas. Para obtener el otro, necesitas secuencias de comandos de contenido, así que lee el enlace que te di. Tendrás que insertar algunos javascript desde la extensión en la pestaña. Es un poco complicado, pero lo conseguirás. –

Cuestiones relacionadas