tabs.move()
將一個或多個標籤頁移動到同一視窗中的新位置,或移動到另一個視窗。
您只能將標籤頁移動到型別為 "normal" 的視窗,以及從這些視窗中移動標籤頁。有關詳細資訊,請參閱 WindowType。
這是一個非同步函式,返回一個 Promise。
語法
let moving = browser.tabs.move(
tabIds, // integer or integer array
moveProperties // object
)
引數
tabIds-
integer或integer的array。要移動的tab的 ID,或者一組標籤頁 ID。 moveProperties-
object。一個指定標籤頁移動到的位置的物件。windowId可選-
integer。您希望將標籤頁移動到的視窗的 ID。如果省略此引數,則tabIds中的每個標籤頁都將移動到其當前視窗中的index位置。如果包含此引數,並且tabIds包含多個標籤頁,則tabIds中的第一個標籤頁將移動到index位置,其他標籤頁將按照tabIds中給出的順序跟隨其後。 index-
integer。要移動標籤頁到的索引位置,從 0 開始。值為 -1 將把標籤頁放在視窗的末尾。如果您傳遞的值小於 -1,函式將丟擲錯誤。
請注意,您不能將固定的標籤頁移動到任何未固定標籤頁之後的位置,也不能將任何未固定標籤頁移動到任何固定標籤頁之前的位置。例如,如果目標視窗中有固定標籤頁,而
tabIds指的是一個未固定的標籤頁,那麼您不能在此處傳遞 0。如果您嘗試這樣做,該函式將靜默失敗(不會丟擲錯誤)。
返回值
一個 Promise,它將以一個 tabs.Tab 物件或一組 tabs.Tab 物件(包含有關已移動標籤頁的詳細資訊)來 fulfilled。如果沒有標籤頁被移動(例如,因為您嘗試將一個未固定的標籤頁移動到一個固定標籤頁之前),它將是一個空陣列。如果發生任何錯誤,Promise 將以錯誤訊息被 rejected。
示例
將當前視窗的第一個標籤頁移動到當前視窗的最後一個位置
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);
});
將所有透過 HTTP 或 HTTPS 服務的來自 *.mozilla.org 的標籤頁移動到其視窗的末尾
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);
});
將所有透過 HTTP 或 HTTPS 服務的來自 *.mozilla.org 的標籤頁移動到第一個此類標籤頁所在的視窗,從位置 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);
});
擴充套件程式示例
瀏覽器相容性
載入中…
注意: 此 API 基於 Chromium 的 chrome.tabs API。本文件源自 Chromium 程式碼中的 tabs.json。