Heim >Web-Frontend >js-Tutorial >Wie übergebe ich Parameter an injizierte Inhaltsskripte in Chrome-Erweiterungen?
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.
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 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!