web-dev-qa-db-fra.com

Insérer une image dans chrome

Je veux savoir comment insérer une image dans une extension Chrome.

<img id="image" src="logo.png" />

J'insère correctement cette balise html dans un site Web, mais je ne peux naturellement pas charger cette image logo.png.

Des idées sur la façon de modifier manifest.json?

32
jacktrades

Il y a deux causes possibles au problème.

  1. Vous injectez une image avec src="logo.png". L'élément d'image inséré devient une partie de la page, donc le navigateur n'essaie pas de charger l'image à partir de l'extension.
    Pour résoudre ce problème, utilisez chrome.extension.getURL('logo.png'); pour obtenir l'URL absolue de la ressource.

  2. "manifest_version": 2 est activé dans le fichier manifeste. Cela désactive toutes les ressources à usage externe, par défaut. Lorsque cette erreur se produit, le message suivant apparaît dans la console:

    Non autorisé à charger la ressource locale: chrome: //gbmfhbpbiibnbbgjcoankapcmcgdkkno/logo.png

    Pour résoudre le problème, ajoutez la ressource à une liste blanche, à savoir "web_accessible_resources" dans le fichier manifeste:

      ...,
      "web_accessible_resources": ["logo.png"]
    }
    

MISE À JOUR: chrome.extension.getURL('logo.png')

Déconseillé depuis Chrome 58. Veuillez utiliser runtime.getURL .

74
Rob W