Heim > Web-Frontend > js-Tutorial > 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
Freigeben: 2024-10-28 18:09:29
Original
219 Leute haben es durchsucht

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'});
});
Nach dem Login kopieren

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'});
});
Nach dem Login kopieren

Im Inhaltsskript (content. js):

alert('Example:' + config);
Nach dem Login kopieren

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');
});
Nach dem Login kopieren

In content.js:

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

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage