tabs.connect()
Rufen Sie diese Funktion auf, um eine Verbindung zwischen den Hintergrundskripten der Erweiterung (oder anderen privilegierten Skripten wie Popup-Skripten oder Optionsseitenskripten) und allen Inhaltsskripten 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 runtime.onConnect-Ereignis in jedem Inhaltsskript, das zu dieser Erweiterung gehört und im angegebenen Tab ausgeführt wird, ausgelöst. Dem Ereignis-Listener wird ein weiteres runtime.Port Objekt übergeben. Die beiden Seiten können dann die Port Objekte verwenden, um Nachrichten auszutauschen.
Weitere Details finden Sie unter Verbindungsbasierte Nachrichtenübermittlung. Sie können Nachrichten senden, ohne eine Verbindung herzustellen. Einen Leitfaden zur Auswahl zwischen den Optionen finden Sie unter Wahl zwischen einmaligen Nachrichten und verbindungsbasierter Nachrichtenübermittlung.
Syntax
browser.tabs.connect(
tabId, // integer
connectInfo // optional object
)
Parameter
tabId-
integer. ID des Tabs, zu dessen Inhaltsskripten wir eine Verbindung herstellen möchten. connectInfoOptional-
Ein Objekt mit den folgenden Eigenschaften:
nameOptional-
string. Wird in dieruntime.onConnectEreignis-Listener in den Inhaltsskripten übergeben, die zu dieser Erweiterung gehören und 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 zur Kommunikation mit den im angegebenen Tab ausgeführten Inhaltsskripten verwendet werden kann.
Beispiele
In diesem Beispiel lauscht ein Hintergrundskript auf einen Klick auf eine Browser-Aktion, verbindet sich dann mit dem aktuell aktiven Tab und sendet dann 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
Loading…
Hinweis:
Diese API basiert auf Chromiums chrome.tabs API. Diese Dokumentation ist abgeleitet von tabs.json im Chromium-Code.