Heim  >  Artikel  >  Web-Frontend  >  Wie übergebe ich Parameter an injizierte Inhaltsskripte in Chrome-Erweiterungen?

Wie übergebe ich Parameter an injizierte Inhaltsskripte in Chrome-Erweiterungen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-27 16:22:01252Durchsuche

How do I pass parameters to injected content scripts in Chrome extensions?

Übergabe von Parametern an eingefügte Inhaltsskripte

Beim Einfügen eines Inhaltsskripts mit chrome.tabs.executeScript() kann es vorkommen, dass Parameter an das Skript übergeben werden müssen. Es muss jedoch unbedingt klargestellt werden, dass die „Übergabe eines Parameters an eine Datei“ kein anwendbares Konzept ist.

Stattdessen sind zwei Optionen zu berücksichtigen: das Festlegen von Parametern vor oder nach der Skriptausführung.

Parameter vor der Ausführung festlegen

Sie können ein Inhaltsskript mit vordefinierten Parametern einfügen, indem Sie chrome.tabs.executeScript-Aufrufe verschachteln:

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

Für komplexe Parameter verwenden Sie JSON.stringify:

<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:

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

Parameter nach der Ausführung festlegen

Parameter können auch nach der Skriptausführung mithilfe der Nachrichtenübermittlung festgelegt werden:

<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:

<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 injizierte Inhaltsskripte in Chrome-Erweiterungen?. 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