2012-08-11 23 views

Respuesta

9

Sí, aquí es cómo se puede hacer esto:

Nota: esto requiere "pestañas" de permisos que se especificarán en el archivo de manifiesto.

chrome.windows.getAll({populate:true}, getAllOpenWindows); 

function getAllOpenWindows(winData) { 

    var tabs = []; 
    for (var i in winData) { 
    if (winData[i].focused === true) { 
     var winTabs = winData[i].tabs; 
     var totTabs = winTabs.length; 
     for (var j=0; j<totTabs;j++) { 
      tabs.push(winTabs[j].url); 
     } 
    } 
    } 
    console.log(tabs); 
} 

En este ejemplo sólo estoy añadiendo pestaña url como lo pidió en una matriz pero cada objeto "pestaña" contiene mucha más información. URL será la URL completa, puede aplicar alguna expresión regular para extraer los nombres de dominio de la URL.

+1

¿Cómo se puede especificar el permiso "pestañas" en el archivo de manifiesto? ¿Qué debo escribir en el archivo de manifiesto para habilitar esta opción? –

+0

'chrome.windows' no está definido ... ¿Qué haces en este caso? –

3

A menos que esté creando un complemento, no hay forma de que sepa recuperar todos los nombres de las pestañas abiertas, especialmente si las pestañas contienen contenido de dominios separados. ¡Si pudieras hacer tal cosa, podría ser un problema de seguridad!

se puede comprobar la documentación de Chrome aquí: http://developer.chrome.com/extensions/devguide.html

+0

Estoy construyendo un complemento de Chrome. – Ray

+0

Es una mala noticia, ya que estoy tratando de migrar manualmente todas las pestañas de Chrome a Firefox (la otra dirección es sencilla ya que puedo hacer que Firefox ejecute cualquier script en chrome: // level). – lilydjwg

Cuestiones relacionadas