27 votes

extension chrome insérer un script de contenu sur l'action du navigateur

Je suis en train de faire fondamentalement un élément de surligneur extension chrome. Flux de travail: - cliquez sur l'icône du navigateur - cliquez sur la page - mettre en avant l'élément cliqué

Je suis à avoir des problèmes dans l'exécution des scripts de contenu sur navigateur d'action à l'aide de manifest_version:2 Quand j'ai inspecter la fenêtre qui apparaît, il dit:

Refusa d'exécuter de script en ligne parce qu'il viole les suivantes Le contenu Politique de Sécurité de la directive: "script src 'auto' chrome-extension-ressource:" (popup.html:5).

Qui est l'endroit où le script en ligne en popup.html est et le script ne fonctionne pas

J'ai:

le manifeste.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>

Toute aide serait très appréciée

41voto

tak3r Points 1222

Il s'avère que je n'ai pas pu lire l'erreur correctement avant de l'avoir vue ici

Apparemment, manifest v2 ne vous permet pas d'avoir des scripts en ligne, donc vous avez juste besoin de

 src="path_to_the_file.js"
 

0voto

Peter Butcher Points 104

En complément de la réponse de @ tak3r et du commentaire de @ Doug:

Les scripts en ligne doivent être remplacés par des scripts externes.

Bouge toi:

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

Dans un nouveau fichier appelé main.js et supprimez les balises <script></script>

Incluez les éléments suivants dans le <head></head> de votre code HTML

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X