Maison > interface Web > js tutoriel > Comment transmettre des paramètres aux scripts de contenu injectés avec `chrome.tabs.executeScript()` ?

Comment transmettre des paramètres aux scripts de contenu injectés avec `chrome.tabs.executeScript()` ?

Mary-Kate Olsen
Libérer: 2024-10-29 12:18:29
original
336 Les gens l'ont consulté

How Do I Pass Parameters to Content Scripts Injected with `chrome.tabs.executeScript()`?

Passer des paramètres aux scripts de contenu injectés avec chrome.tabs.executeScript()

Lors de l'injection d'un fichier de script de contenu à l'aide de chrome.tabs.executeScript ({file : "content.js"}), une question courante se pose : comment transmettre des paramètres au JavaScript dans le fichier de script de contenu ?

Erreur de transmission des paramètres

Il est important de préciser que vous ne pouvez pas transmettre directement des paramètres à un fichier. Au lieu de cela, vous disposez de deux options pour réaliser cette fonctionnalité :

1. Définition des paramètres avant l'exécution du fichier

Nestz les appels chrome.tabs.executeScript pour définir les variables avant d'injecter le fichier :

<code class="javascript">chrome.tabs.executeScript(tab.id, {
    code: 'var config = 1;'
}, function() {
    chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});</code>
Copier après la connexion

Pour les variables complexes, envisagez d'utiliser JSON.stringify pour convertir un objet dans une chaîne :

<code class="javascript">var config = {somebigobject: 'complicated value'};
chrome.tabs.executeScript(tab.id, {
    code: 'var config = ' + JSON.stringify(config)
}, function() {
    chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});</code>
Copier après la connexion

Dans content.js, vous pouvez accéder à ces variables :

<code class="javascript">// content.js
alert('Example:' + config);</code>
Copier après la connexion

2. Définition des paramètres après l'exécution du fichier

Exécutez d'abord le fichier, puis utilisez l'API de transmission de messages pour envoyer les paramètres :

<code class="javascript">chrome.tabs.executeScript(tab.id, {file: 'content.js'}, function() {
    chrome.tabs.sendMessage(tab.id, 'whatever value; String, object, whatever');
});</code>
Copier après la connexion

Dans content.js, écoutez ces messages à l'aide de Chrome. runtime.onMessage et gérez le message :

<code class="javascript">chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    // Handle message.
    // In this example, message === 'whatever value; String, object, whatever'
});</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal