L’extension refuse de charger le script en raison de la directive de sécurité du contenu

Voici mon code HTML

Scripts:

  

HTML:

  

et suivant est js

 $(document).ready(function(){ document.getElementById("#btnlogin").click(function(){ alert("s"); }); }); 

fichier manifeste:

 { "manifest_version": 2, "name": "One-click Kittens", "description": "This extension demonstrates a 'browser action' with kittens.", "version": "1.0", "browser_action": { "default_icon": "icon.png", "default_popup": "popup.html" }, } 

J’ai trouvé que lorsque je lance ce code simplement dans le navigateur, l’alerte apparaît correctement mais quand je l’exécute en tant qu’extension chrome, cela me donne des erreurs suivantes.

Uneaught ReferenceError: $ n’est pas défini

et

Refusé de charger le script ‘ http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js ‘ car il enfreint la directive suivante relative à la sécurité du contenu: “script-src ‘self’ chrome -extension-resource: “.

Je ne comprends pas quelles sont ces erreurs. S’il vous plaît aidez-moi à comprendre l’extension ..

Je vous remercie

Dans une extension Chrome, les sources de script externes doivent être explicitement autorisées par la stratégie de sécurité du contenu (CSP) de l’extension dans votre manifeste:

Si vous avez besoin de certaines ressources JavaScript ou objects externes, vous pouvez assouplir la stratégie dans une mesure limitée en établissant une liste blanche des origines sécurisées à partir desquelles les scripts doivent être acceptés …

Une définition de stratégie assouplie permettant aux ressources de script d’être chargées à partir d’exemple.com via HTTPS peut ressembler à ceci:

 "content_security_policy":"script-src 'self' https://example.com; object-src 'self'" 

Les scripts peuvent uniquement être chargés dans une extension via HTTPS, vous devez donc charger la ressource CDN jQuery sur HTTPS:

  

Et ajoutez un CSP modifié à votre manifeste pour autoriser cette ressource HTTPS:

 { "manifest_version": 2, "name": "One-click Kittens", "description": "This extension demonstrates a 'browser action' with kittens.", "version": "1.0", "browser_action": { "default_icon": "icon.png", "default_popup": "popup.html" }, "content_security_policy": "script-src 'self' https://ajax.googleapis.com; object-src 'self'" } 

Et une solution encore meilleure pour votre cas particulier serait d’inclure jQuery dans votre extension au lieu de charger depuis Internet (par exemple, votre extension ne fonctionnera pas actuellement hors ligne). Il vous suffit d’inclure une copie de jQuery dans votre dossier d’extension et de vous y reporter avec un chemin d’access relatif dans votre balise de script. En supposant que votre bibliothèque jQuery et votre fichier popup HTML se trouvent dans le même sous-répertoire, faites simplement: