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 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 runtime.onConnect
Ereignis in jedem Inhalts-Skript, das zu dieser Erweiterung gehört und im angegebenen Tab ausgeführt wird, ausgelöst. 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 Einzelheiten siehe Verbindungsbasierte Nachrichtenübermittlung. Sie können auch ohne Erstellung einer Verbindung Nachrichten senden. Für Ratschläge, wie Sie zwischen den Optionen wählen können, lesen Sie Auswahl zwischen einmaligen Nachrichten und verbindungsbasierten Nachrichten.
Syntax
browser.tabs.connect(
tabId, // integer
connectInfo // optional object
)
Parameter
tabId
-
integer
. ID des Tabs, dessen Inhalts-Skripte wir verbinden möchten. connectInfo
Optional-
Ein Objekt mit den folgenden Eigenschaften:
name
Optional-
string
. Wird anruntime.onConnect
Ereignis-Listener in Inhalts-Skripten ü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, anstelle aller Frames im Tab.
Rückgabewert
runtime.Port
. Ein Port, der verwendet werden kann, um mit den Inhalts-Skripten im angegebenen Tab 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 anschließend 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
BCD tables only load in the browser
Hinweis: Diese API basiert auf Chromiums chrome.tabs
API. Diese Dokumentation ist abgeleitet von tabs.json
im Chromium-Code.