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

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

Barbara Streisand
Freigeben: 2024-10-27 16:22:01
Original
380 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

In content.js:

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

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

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