Heim  >  Artikel  >  Web-Frontend  >  Wie übergebe ich Parameter an Inhaltsskripte, die mit „chrome.tabs.executeScript()“ eingefügt wurden?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-29 12:18:29206Durchsuche

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>

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!

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