tabs.move()
将一个或多个标签移动到同一窗口中的新位置,或移动到不同的窗口。
你只能将标签移动到 WindowType
为 "normal"
的窗口中,或者从这些窗口中移动标签。
这是一个异步函数,它返回一个 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。如果你尝试这样做,该函数将静默失败(它不会抛出错误)。
返回值
示例
将当前窗口中的第一个标签移动到当前窗口的最后一个位置
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);
});
示例扩展
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
注意:此 API 基于 Chromium 的 chrome.tabs
API。本文档源自 Chromium 代码中的 tabs.json
。