Ü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>
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>
In content.js können Sie auf diese Variablen zugreifen:
<code class="javascript">// content.js alert('Example:' + config);</code>
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>
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>
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!