2012-05-19 12 views
5

Mi manifest.json contienechrome.tabs.create está dando un error - "TypeError no detectada: No se puede llamar al método 'crear' de indefinido"

"content_scripts": [ 
    { 
    "matches": ["http://www.facebook.com/*","https://www.facebook.com/*"], 
    "js": ["js/jquery-1.7.2.min.js", "js/jquery.livequery.min.js", "js/script.js"] 
    } 
] 

y el contenido de script.js son

$("#FB_HiddenContainer").livequery(function(){ 
    chrome.tabs.create({"url":"http://www.google.com"}); 
}); 

cuando abro Facebook, la consola informa de un error

no detectada TypeError: no se puede llamar al método 'crear' indefinido de

en

cromo-extensión: //whateveristhisweirdcode/js/script.js: 2

¿Cómo puedo hacer que se abra una nueva pestaña ??

Respuesta

18

Los scripts de contenido no pueden acceder a la mayoría de las API de extensión; solo los listados en the content scripts doc funcionarán. En su lugar, use window.open ("http://www.google.com") (sí, este crea una nueva pestaña en Chrome; no, no no son las configuraciones de usuario en Chrome que cambiarían eso). Si necesita más acceso a las API de extensión, puede usar message passing para hacer que su event page haga cosas en nombre del script de contenido.

Cuestiones relacionadas