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-28 18:09:29
original
218 Les gens l'ont consulté

How to Pass Parameters to Injected Content Scripts with Chrome.tabs.executeScript()?

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

La méthode chrome.tabs.executeScript() permet d'injecter Fichiers JavaScript dans le contenu d'un onglet. Cependant, il ne fournit pas de moyen direct de transmettre des paramètres au script injecté.

Méthode 1 : définir les paramètres avant l'exécution

Une approche consiste à imbriquer chrome.tabs. ExecuteScript() appelle pour définir des variables avant d'exécuter le fichier JavaScript :

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

Les variables complexes peuvent être converties en chaînes à l'aide de JSON.stringify :

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'});
});
Copier après la connexion

Dans le script de contenu (content. js):

alert('Example:' + config);
Copier après la connexion

Méthode 2 : définir les paramètres après l'exécution

Alternativement, les paramètres peuvent être transmis après l'exécution du fichier JavaScript à l'aide de l'API de transmission de messages :

chrome.tabs.executeScript(tab.id, {file: 'content.js'}, function() {
    chrome.tabs.sendMessage(tab.id, 'whatever value; String, object, whatever');
});
Copier après la connexion

Dans content.js :

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    // Handle message: message === 'whatever value; String, object, whatever'
});
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!

source:php.cn
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