tabs.move()

Bewegt einen oder mehrere Tabs an eine neue Position im selben Fenster oder in ein anderes Fenster.

Sie können Tabs nur zu und von Fenstern bewegen, deren WindowType "normal" ist.

Dies ist eine asynchrone Funktion, die ein Promise zurückgibt.

Syntax

js
let moving = browser.tabs.move(
  tabIds,              // integer or integer array
  moveProperties       // object
)

Parameter

tabIds

integer oder array von integer. ID des zu verschiebenden Tabs, oder ein Array von Tab-IDs.

moveProperties

object. Ein Objekt, das angibt, wohin der oder die Tabs verschoben werden sollen.

windowId Optional

integer. Die ID des Fensters, in das Sie den oder die Tabs verschieben möchten. Wenn Sie dies weglassen, wird jeder Tab in tabIds an index in seinem aktuellen Fenster verschoben. Wenn Sie dies angeben und tabIds mehr als einen Tab enthält, wird der erste Tab in tabIds an index verschoben, und die anderen Tabs folgen ihm in der in tabIds angegebenen Reihenfolge.

index

integer. Die Index-Position, an die der Tab verschoben werden soll, beginnend bei 0. Ein Wert von -1 platziert den Tab am Ende des Fensters.

Wenn Sie einen Wert kleiner als -1 übergeben, wird die Funktion einen Fehler auslösen.

Beachten Sie, dass Sie keine angehefteten Tabs an eine Position nach unangehefteten Tabs in einem Fenster verschieben können, oder unangeheftete Tabs an eine Position vor angehefteten Tabs. Wenn Sie zum Beispiel ein oder mehrere angeheftete Tabs im Ziel-Fenster haben und tabIds sich auf einen unangehefteten Tab bezieht, dann können Sie hier nicht 0 übergeben. Wenn Sie versuchen, dies zu tun, wird die Funktion stillschweigend fehlschlagen (sie wird keinen Fehler auslösen).

Rückgabewert

Ein Promise, das mit einem tabs.Tab-Objekt oder einem array von tabs.Tab-Objekten erfüllt wird, die Details über die verschobenen Tabs enthalten. Wenn keine Tabs verschoben wurden (zum Beispiel, weil Sie versucht haben, einen unangehefteten Tab vor einen angehefteten Tab zu verschieben), wird dies ein leeres Array sein. Wenn ein Fehler auftritt, wird das Versprechen mit einer Fehlermeldung abgelehnt.

Beispiele

Verschieben Sie den ersten Tab im aktuellen Fenster in die letzte Position im aktuellen Fenster:

js
function onMoved(tab) {
  console.log(`Moved: ${tab}`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

function firstToLast(windowInfo) {
  if (windowInfo.tabs.length === 0) {
    return;
  }
  let moving = browser.tabs.move(windowInfo.tabs[0].id, { index: -1 });
  moving.then(onMoved, onError);
}

browser.browserAction.onClicked.addListener(() => {
  let gettingCurrent = browser.windows.getCurrent({ populate: true });
  gettingCurrent.then(firstToLast, onError);
});

Verschieben Sie alle Tabs, die über HTTP oder HTTPS von *.mozilla.org bereitgestellt werden, an das Ende ihres Fensters:

js
function onMoved(tab) {
  console.log(`Moved: ${tab}`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

function moveMoz(tabs) {
  let mozTabIds = tabs.map((tabInfo) => tabInfo.id);
  let moving = browser.tabs.move(mozTabIds, { index: -1 });
  moving.then(onMoved, onError);
}

browser.browserAction.onClicked.addListener(() => {
  let gettingMozTabs = browser.tabs.query({ url: "*://*.mozilla.org/*" });
  gettingMozTabs.then(moveMoz, onError);
});

Verschieben Sie alle Tabs, die über HTTP oder HTTPS von *.mozilla.org bereitgestellt werden, in das Fenster, das den ersten solchen Tab hostet, beginnend bei Position 0:

js
function onMoved(tab) {
  console.log(`Moved: ${tab}`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

function moveMoz(tabs) {
  let mozTabIds = tabs.map((tabInfo) => tabInfo.id);
  let targetWindow = tabs[0].windowId;
  let moving = browser.tabs.move(mozTabIds, {
    windowId: targetWindow,
    index: 0,
  });
  moving.then(onMoved, onError);
}

browser.browserAction.onClicked.addListener(() => {
  let gettingMozTabs = browser.tabs.query({ url: "*://*.mozilla.org/*" });
  gettingMozTabs.then(moveMoz, onError);
});

Beispielerweiterungen

Browser-Kompatibilität

Hinweis: Diese API basiert auf der chrome.tabs-API von Chromium. Diese Dokumentation ist abgeleitet von tabs.json im Chromium-Code.