„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 07.11.2024
Durchsuche:660

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:

chrome.tabs.executeScript(tab.id, {
    code: 'var config = 1;'
}, function() {
    chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});

Erwägen Sie bei komplexen Variablen die Verwendung von JSON.stringify, um ein Objekt in einen String zu konvertieren:

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'});
});

In content.js können Sie auf diese Variablen zugreifen:

// content.js
alert('Example:'   config);

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:

chrome.tabs.executeScript(tab.id, {file: 'content.js'}, function() {
    chrome.tabs.sendMessage(tab.id, 'whatever value; String, object, whatever');
});

In content.js mit chrome.runtime.onMessage auf diese Nachrichten warten und die Nachricht verarbeiten:

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    // Handle message.
    // In this example, message === 'whatever value; String, object, whatever'
});
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3