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
Report problems with this compatibility data on GitHubdesktop | mobile | ||||||
---|---|---|---|---|---|---|---|
connect |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
Hinweis:
Diese API basiert auf Chromiums chrome.tabs
API. Diese Dokumentation ist abgeleitet von tabs.json
im Chromium-Code.