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。