J'écris une extension Chrome et j'essaie de superposer Lorsque j'accède à la méthode Dois-je utiliser la messagerie entre background.html et popup.html pour accéder au DOM de la page web ? J'aimerais tout faire dans popup.html et également utiliser jQuery si possible. document.body.insertBefore
à partir de popup.html, elle écrase le document.body.insertBefore
方法时,它会覆盖弹出窗口上的
Quelques exemples d'utilisation de l'injection programmatique pour ajouter un script contextuel extensible à ce div.
Manifeste V3
N'oubliez pas d'ajouter des autorisations dans manifest.json, voir les autres réponses pour plus d'informations.
Appel simple :
Remarque : Dans Chrome 91 ou version antérieure,
func:
应为function:
.Appelez avec paramètres et recevez les résultats
Nécessite Chrome 92 lors de sa mise en œuvre
args
.Exemple 1 :
Exemple 2 :
Liste V2
Appel simple :
Appelez avec paramètres et recevez le résultat :
Cet exemple utilise la fonction
inContent
pour convertir automatiquement le code en chaîne. L'avantage est que l'EDI peut appliquer la coloration syntaxique et le peluchage. L'inconvénient évident est que le navigateur perd du temps à analyser le code, mais cela prend généralement moins d'une milliseconde, donc c'est négligeable.Problème : Les pages d'extension (popups, options, pages de fond dans MV2, etc.) sont séparées de la page web, elles ont leur propre DOM,
document
、window 和chrome-extension://
URL.Solution : utilisez Content Scripts pour accéder aux pages Web ou interagir avec leur contenu.
Méthode 1. Déclarative
manifest.json :
Il s'exécutera une fois lors du chargement de la page. Après cela, utilisez Messaging.
Attention ! Il ne peut pas envoyer d'éléments DOM, Maps, Sets, ArrayBuffers, classes, fonctions, etc. Il ne peut envoyer que des objets et des types simples compatibles JSON, vous devez donc extraire manuellement les données requises et les transmettre sous forme de simple tableau ou objet.
Méthode 2. Programmation
ManifestV3 :
Dans les scripts d'extension (tels que les fenêtres contextuelles), des scripts/fonctions de contenu peuvent être injectés dans les onglets selon les besoins.
Le résultat de cette méthode est la dernière expression du script de contenu et peut donc être utilisé pour extraire des données. Les données doivent être compatibles JSON, voir l'avertissement ci-dessus.
Obligatoiredans
权限
manifest.json :“脚本”
- obligatoire ;"activeTab"
- Scénario idéal, adapté pour répondre aux actions des utilisateurs (généralement en cliquant sur une icône d'extension dans la barre d'outils). N'affichez aucun avertissement d'autorisation lors de l'installation d'extensions.Si l'idéal n'est pas possible, ajoutez les sites autorisés à
host_permissions
dans manifest.json :“*://*.example.com/”
et tout autre site internet de votre choix.""
或"*://*/"
Ceux-ci placeront votre extension dans une file d'attente de révision très lente dans le Chrome Web Store en raison des autorisations étendues de l'hôte.Différences entre ManifestV2 et ce qui précède :
权限
.