Heim  >  Artikel  >  Web-Frontend  >  Wie übergebe ich Parameter an eingefügte Inhaltsskripte mit Chrome.tabs.executeScript()?

Wie übergebe ich Parameter an eingefügte Inhaltsskripte mit Chrome.tabs.executeScript()?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-28 18:09:29135Durchsuche

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

Übergabe von Parametern an injizierte Inhaltsskripts mit Chrome.tabs.executeScript()

Die Methode chrome.tabs.executeScript() ermöglicht das Injizieren JavaScript-Dateien in den Inhalt einer Registerkarte einfügen. Es bietet jedoch keine direkte Möglichkeit, Parameter an das injizierte Skript zu übergeben.

Methode 1: Parameter vor der Ausführung festlegen

Ein Ansatz besteht darin, chrome.tabs zu verschachteln. executeScript()-Aufrufe zum Definieren von Variablen vor der Ausführung der JavaScript-Datei:

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

Komplexe Variablen können mit JSON.stringify in Strings konvertiert werden:

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

Im Inhaltsskript (content. js):

alert('Example:' + config);

Methode 2: Parameter nach der Ausführung festlegen

Alternativ können Parameter nach der Ausführung der JavaScript-Datei mithilfe der Message-Passing-API übergeben werden:

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

In content.js:

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    // Handle message: message === 'whatever value; String, object, whatever'
});

Das obige ist der detaillierte Inhalt vonWie übergebe ich Parameter an eingefügte Inhaltsskripte mit Chrome.tabs.executeScript()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn