2012-07-18 10 views
27

Estoy tratando de hacer básicamente un resaltador de elemento de extensión de cromo. flujo de trabajo: - hacer clic en el icono del navegador - hacer clic en la página - Hightlight el elemento clicscript de contenido de inserción de extensión de cromo en la acción del navegador

estoy teniendo problemas en la ejecución de scripts de contenido sobre la acción navegador usando manifest_version: 2 Cuando examino la ventana emergente que aparece Dice :

se negó a ejecutar un script en línea porque no cumple con el siguiente contenido Directiva política de Seguridad: "script src 'auto' cromo-extensión de los recursos:" (popup.html: 5).

Y aquí es donde la secuencia de comandos en línea en popup.html es el guión y no trabajar

tengo:

manifest.json:

{ 
    "browser_action": { 
     "default_icon": "images/icon.gif", 
     "default_popup": "popup.html" 
    }, 
    "manifest_version": 2, 
    "description": "MEH!", 
    "name": "My First Extension", 
    "permissions": [ 
     "tabs", "http://*/*", "https://*/*" 
    ], 
    "version": "0.1" 
} 

popup.html:

<html> 
    <head> 
    </head> 
    <body> 
    <script> 
     chrome.tabs.executeScript(null,{ 
     code:"document.body.style.backgroundColor='red'" 
     }); 
    </script> 
    <div id='msg' style="width:300px">...</div> 
    </body> 
</html> 

Cualquier ayuda sería muy apreciada ed

+0

duplicado posible de [La extensión de Chrome ventana emergente no funciona, haga clic en eventos no se manejan] (http://stackoverflow.com/questions/17601615/the-chrome-extension-popup-is-not-working-click -eventos-no-se-manejan) – Makyen

Respuesta

44

Resulta que no podía leer el error correctamente hasta que lo vi aquí

v2 Al parecer manifiesto no le permiten tener secuencias de comandos en línea, por lo que sólo tiene que

src="path_to_the_file.js" 
+3

Para aquellos que todavía no obtienen la respuesta, vea http://stackoverflow.com/a/17612988/938089 –

+1

¿Dónde está poniendo src? Esta respuesta no está clara. – Doug

+0

dentro del cuerpo. Entonces, en lugar de insertar un , insertaría un script que apunta a un archivo, también conocido como dentro del HTML de la página (como dentro del HEAD o qué- no) – Stefan

0

en extensión a la respuesta de @ tak3r y al comentario de @ Doug:

Los scripts en línea deben cambiarse a scripts externos.

Mover:

<script> 
    chrome.tabs.executeScript(null,{ 
    code:"document.body.style.backgroundColor='red'" 
    }); 
</script> 

Para un nuevo archivo llamado main.js y retire los <script></script> etiquetas

incluir lo siguiente en el <head></head> de su HTML

<script type="text/javascript" src="main.js"></script> 
Cuestiones relacionadas