tabs.connect()
Rufen Sie diese Funktion auf, um eine Verbindung zwischen den Hintergrundskripten der Erweiterung (oder anderen privilegierten Skripten, wie z.B. Pop-up-Skripten oder Optionsseitenskripten) und allen Inhalts-Skripten herzustellen, die zu dieser Erweiterung gehören und im angegebenen Tab ausgeführt werden. Diese Funktion gibt ein runtime.Port-Objekt zurück.
Wenn dies aufgerufen wird, wird das Ereignis runtime.onConnect in jedem Inhalts-Skript dieser Erweiterung ausgelöst, das im angegebenen Tab ausgeführt wird. Der Ereignis-Listener erhält ein weiteres runtime.Port-Objekt. Die beiden Seiten können dann die Port-Objekte verwenden, um Nachrichten auszutauschen.
Für weitere Details siehe verbindungsbasierte Nachrichtenübermittlung. Sie können ohne eine Verbindung eine Nachricht senden, für Ratschläge zur Auswahl zwischen den Optionen siehe Auswahl zwischen einmaligen Nachrichten und verbindungsbasierter Nachrichtenübermittlung.
Syntax
browser.tabs.connect(
tabId, // integer
connectInfo // optional object
)
Parameter
tabId-
integer. ID des Tabs, dessen Inhalts-Skripte wir verbinden möchten. connectInfoOptional-
Ein Objekt mit den folgenden Eigenschaften:
documentIdOptional-
string. Öffnet einen Port zu einem bestimmten Dokument, anstatt zu allen Frames im Tab. Weitere Informationen finden Sie im Artikel Arbeiten mit documentId. nameOptional-
string. Wird an dieruntime.onConnect-Ereignis-Listener in Inhalts-Skripten, die zu dieser Erweiterung gehören und im angegebenen Tab ausgeführt werden, übergeben. frameIdOptional-
integer. Öffnet einen Port zu einem spezifischen Frame, der durchframeIdidentifiziert wird, anstatt zu allen Frames im Tab.
Rückgabewert
runtime.Port. Ein Port, der verwendet werden kann, um mit den Inhalts-Skripten, die im angegebenen Tab ausgeführt werden, zu kommunizieren.
Beispiele
In diesem Beispiel hört ein Hintergrundskript auf einen Klick auf eine Browser-Aktion, stellt dann eine Verbindung zum aktuell aktiven Tab her und sendet dann eine Nachricht über den Port, der von connect() zurückgegeben wird:
function connectToTab(tabs) {
if (tabs.length > 0) {
let examplePort = browser.tabs.connect(tabs[0].id, {
name: "tabs-connect-example",
});
examplePort.postMessage({ greeting: "Hi from background script" });
}
}
function onError(error) {
console.log(`Error: ${error}`);
}
browser.browserAction.onClicked.addListener(() => {
let gettingActive = browser.tabs.query({
currentWindow: true,
active: true,
});
gettingActive.then(connectToTab, onError);
});
Browser-Kompatibilität
Hinweis:
Diese API basiert auf Chromium's chrome.tabs API. Diese Dokumentation stammt aus tabs.json im Chromium-Code.