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. 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 Ereignis runtime.onConnect in jedem Inhalts-Skript ausgelöst, das zu dieser Erweiterung gehört und im angegebenen Tab ausgeführt wird. Der Ereignislistener 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 auch Nachrichten senden, ohne eine Verbindung herzustellen. Für Ratschläge zur Entscheidung zwischen den Optionen siehe Wahl 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, das durch documentId identifiziert wird, anstatt zu allen Frames im Tab.

name Optional

string. Wird an die Ereignislistener von runtime.onConnect in den Inhalts-Skripten dieser Erweiterung übergeben, die im angegebenen Tab ausgeführt werden.

frameId Optional

integer. Öffnet einen Port zu einem bestimmten 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 im angegebenen Tab ausgeführten Inhalts-Skripten zu kommunizieren.

Beispiele

In diesem Beispiel lauscht ein Hintergrundskript auf einen Klick auf eine Browser-Aktion, verbindet sich dann mit dem derzeit aktiven Tab und sendet eine Nachricht mit dem 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 der chrome.tabs API von Chromium. Diese Dokumentation ist abgeleitet von tabs.json im Chromium-Code.