2012-07-18 21 views
27

Sto provando a fare fondamentalmente un elemento dell'estensione per evidenziatore di cromo. Workflow: - cliccare sul navigatore sull'icona - clicca sulla pagina - hightlight l'elemento cliccatoscript di contenuto dell'inserzione di estensione chrome sull'azione del browser

sto avendo problemi in esecuzione di script contenuti sull'azione browser usando manifest_version: 2 Quando ho ispezionare la comparsa che appare si dice :

rifiutato di eseguire lo script inline perché viola il seguente contenuti direttiva politica di sicurezza: "script src 'sé' cromo-extension-risorsa:" (popup.html: 5).

Che è dove lo script inline in popup.html è e lo script non funziona

ho:

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> 

Qualsiasi aiuto sarebbe molto apprezzato Ed

+0

Eventuali duplicati di [L'estensione Chrome popup non funziona, gli eventi click non sono gestiti] (http://stackoverflow.com/questions/17601615/the-chrome-extension-popup-is-not-working-click -eventi-non-gestiti) – Makyen

risposta

44

risulta non ho potuto leggere l'errore correttamente fino a quando ho visto in qui

Apparentemente manifesta v2 non consentono di avere gli script in linea, in modo che solo bisogno di

src="path_to_the_file.js" 
+3

Per coloro che non ottengono ancora la risposta, vedere http://stackoverflow.com/a/17612988/938089 –

+1

Dove stai mettendo src? Questa risposta non è chiara. – Doug

+0

all'interno del corpo. Quindi, invece di inserire uno , devi inserire uno script che punta a un file, ovvero all'interno dell'HTML della pagina (come all'interno del HEAD o cosa- non) – Stefan

0

In estensione alla risposta di @ tak3r e al commento di @ Doug:

Gli script inline devono essere modificati in script esterni.

Move:

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

Per un nuovo file chiamato main.js e rimuovere le <script></script> tag

includere le seguenti nella <head></head> del codice HTML

<script type="text/javascript" src="main.js"></script> 
Problemi correlati