Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie übergebe ich Parameter an Inhaltsskripte, die mit „chrome.tabs.executeScript()' eingefügt wurden?

Mary-Kate Olsen
Freigeben: 2024-10-29 12:18:29
Original
206 Leute haben es durchsucht

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

Übergabe von Parametern an Inhaltsskripte, die mit chrome.tabs.executeScript() eingefügt werden

Beim Einfügen einer Inhaltsskriptdatei mit chrome.tabs.executeScript ({file: „content.js“}) stellt sich häufig die Frage: Wie werden Parameter an JavaScript innerhalb der Inhaltsskriptdatei übergeben?

Fehler bei der Parameterübergabe

Es ist wichtig klarzustellen, dass Sie Parameter nicht direkt an eine Datei übergeben können. Stattdessen haben Sie zwei Möglichkeiten, diese Funktionalität zu erreichen:

1. Festlegen von Parametern vor der Dateiausführung

Nest chrome.tabs.executeScript-Aufrufe zum Definieren von Variablen vor dem Einfügen der Datei:

<code class="javascript">chrome.tabs.executeScript(tab.id, {
    code: 'var config = 1;'
}, function() {
    chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});</code>
Nach dem Login kopieren

Erwägen Sie bei komplexen Variablen die Verwendung von JSON.stringify zum Konvertieren einer Objekt in einen String umwandeln:

<code class="javascript">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'});
});</code>
Nach dem Login kopieren

In content.js können Sie auf diese Variablen zugreifen:

<code class="javascript">// content.js
alert('Example:' + config);</code>
Nach dem Login kopieren

2. Festlegen von Parametern nach der Dateiausführung

Führen Sie zuerst die Datei aus und verwenden Sie dann die Nachrichtenübermittlungs-API, um Parameter zu senden:

<code class="javascript">chrome.tabs.executeScript(tab.id, {file: 'content.js'}, function() {
    chrome.tabs.sendMessage(tab.id, 'whatever value; String, object, whatever');
});</code>
Nach dem Login kopieren

In content.js mit Chrome auf diese Nachrichten achten. runtime.onMessage und verarbeiten Sie die Nachricht:

<code class="javascript">chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    // Handle message.
    // In this example, message === 'whatever value; String, object, whatever'
});</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie übergebe ich Parameter an Inhaltsskripte, die mit „chrome.tabs.executeScript()' eingefügt wurden?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!