tabs.connect()
Rufen Sie diese Funktion auf, um eine Verbindung zwischen den Hintergrundskripten der Erweiterung (oder anderen privilegierten Skripten, wie z.B. Popup-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 ausgelöst, das zu dieser Erweiterung gehört und im angegebenen Tab ausgeführt wird. Der Ereignislistener 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 auch Nachrichten senden, ohne eine Verbindung herzustellen. Für Ratschläge zur Entscheidung zwischen den Optionen siehe Wahl 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, das durchdocumentIdidentifiziert wird, anstatt zu allen Frames im Tab. nameOptional-
string. Wird an die Ereignislistener vonruntime.onConnectin den Inhalts-Skripten dieser Erweiterung übergeben, die im angegebenen Tab ausgeführt werden. frameIdOptional-
integer. Öffnet einen Port zu einem bestimmten Frame, der durchframeIdidentifiziert wird, anstatt zu allen Frames im Tab.
Rückgabewert
runtime.Port. Ein Port, der verwendet werden kann, um mit den im angegebenen Tab ausgeführten Inhalts-Skripten zu kommunizieren.
Beispiele
In diesem Beispiel lauscht ein Hintergrundskript auf einen Klick auf eine Browser-Aktion, verbindet sich dann mit dem derzeit aktiven Tab und sendet eine Nachricht mit dem 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 der chrome.tabs API von Chromium. Diese Dokumentation ist abgeleitet von tabs.json im Chromium-Code.