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'}); });
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'}); });
Dans le script de contenu (content. js):
alert('Example:' + config);
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'); });
Dans content.js :
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) { // Handle message: message === 'whatever value; String, object, whatever' });
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!