Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

tabs.connect()

Rufen Sie diese Funktion auf, um eine Verbindung zwischen den Hintergrundskripten der Erweiterung (oder anderen privilegierten Skripten, wie z.B. Pop-up-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 dieser Erweiterung ausgelöst, das im angegebenen Tab ausgeführt wird. 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 Details siehe verbindungsbasierte Nachrichtenübermittlung. Sie können ohne eine Verbindung eine Nachricht senden, für Ratschläge zur Auswahl zwischen den Optionen siehe Auswahl zwischen einmaligen Nachrichten und verbindungsbasierter Nachrichtenübermittlung.

Syntax

js
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:

documentId Optional

string. Öffnet einen Port zu einem bestimmten Dokument, anstatt zu allen Frames im Tab. Weitere Informationen finden Sie im Artikel Arbeiten mit documentId.

name Optional

string. Wird an die runtime.onConnect-Ereignis-Listener in Inhalts-Skripten, die zu dieser Erweiterung gehören und im angegebenen Tab ausgeführt werden, übergeben.

frameId Optional

integer. Öffnet einen Port zu einem spezifischen Frame, der durch frameId identifiziert wird, anstatt zu allen Frames im Tab.

Rückgabewert

runtime.Port. Ein Port, der verwendet werden kann, um mit den Inhalts-Skripten, die im angegebenen Tab ausgeführt werden, 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 dann eine Nachricht über den Port, der von connect() zurückgegeben wird:

js
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 Chromium's chrome.tabs API. Diese Dokumentation stammt aus tabs.json im Chromium-Code.