tabs.move()
Verschiebt einen oder mehrere Tabs an eine neue Position im gleichen Fenster oder in ein anderes Fenster.
Sie können nur Tabs zu und von Fenstern bewegen, deren WindowType auf "normal" gesetzt ist.
Wenn der Aufruf einen Tab oder mehrere Tabs in einer geteilten Ansicht verschiebt, bewegt Firefox die Tabs in der geteilten Ansicht zusammen, um die geteilte Ansicht zu erhalten. In Chrome entfernt das Verschieben eines Tabs weg vom anderen Tab in einer geteilten Ansicht die geteilte Ansicht.
Syntax
let moving = browser.tabs.move(
tabIds, // integer or integer array
moveProperties // object
)
Parameter
tabIds-
integeroderarrayvoninteger. ID des zu verschiebendentab, oder ein Array von Tab-IDs. moveProperties-
object. Ein Objekt, das angibt, wohin der/die Tab(s) verschoben werden soll(en).windowIdOptional-
integer. Die ID des Fensters, in das Sie den/die Tab(s) verschieben möchten. Wenn Sie dies weglassen, wird jeder Tab intabIdsanindexin seinem aktuellen Fenster verschoben. Wenn Sie dies angeben undtabIdsmehr als einen Tab enthält, wird der erste Tab intabIdsanindexverschoben, und die anderen Tabs folgen ihm in der intabIdsangegebenen Reihenfolge. index-
integer. Die Indexposition, 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 angeheftete Tabs nicht an eine Position nach nicht angehefteten Tabs in einem Fenster verschieben können oder umgekehrt. Wenn Sie beispielsweise einen oder mehrere angeheftete Tabs im Ziel-Fenster haben und
tabIdssich auf einen nicht angehefteten Tab bezieht, dann können Sie hier nicht 0 angeben. Wenn Sie dies versuchen, wird die Funktion stillschweigend fehlschlagen (es wird kein Fehler ausgelöst).
Rückgabewert
Ein Promise, das mit einem tabs.Tab-Objekt oder einem array von tabs.Tab-Objekten erfüllt wird, das Details über die verschobenen Tabs enthält. Wenn keine Tabs verschoben wurden (zum Beispiel, weil Sie versucht haben, einen nicht angehefteten Tab vor einem angehefteten Tab zu verschieben), ist dies ein leeres Array. Falls ein Fehler auftritt, wird das Promise mit einer Fehlermeldung zurückgewiesen.
Beispiele
Verschieben Sie den ersten Tab im aktuellen Fenster zur letzten Position im aktuellen Fenster:
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 bedient werden, ans Ende ihres Fensters:
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 bedient werden, in das Fenster, das den ersten solchen Tab beherbergt, beginnend bei Position 0:
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.