"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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()` ?

Publié le 2024-11-07
Parcourir:134

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

Transmission de 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 de 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 obtenir cette fonctionnalité :

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

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

chrome.tabs.executeScript(tab.id, {
    code: 'var config = 1;'
}, function() {
    chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});

Pour les variables complexes, pensez à utiliser JSON.stringify pour convertir un objet en chaîne :

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'});
});

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

// content.js
alert('Example:'   config);

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 :

chrome.tabs.executeScript(tab.id, {file: 'content.js'}, function() {
    chrome.tabs.sendMessage(tab.id, 'whatever value; String, object, whatever');
});

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

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    // Handle message.
    // In this example, message === 'whatever value; String, object, whatever'
});
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3