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. connectInfo
Optional-
Ein Objekt mit den folgenden Eigenschaften:
name
Optional-
string
. Wird in dieruntime.onConnect
Ereignis-Listener in den Inhaltsskripten übergeben, die zu dieser Erweiterung gehören und im angegebenen Tab ausgeführt werden. frameId
Optional-
integer
. Öffnet einen Port zu einem bestimmten Frame, der durchframeId
identifiziert 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
Hinweis:
Diese API basiert auf Chromiums chrome.tabs
API. Diese Dokumentation ist abgeleitet von tabs.json
im Chromium-Code.