Spec-Zone.ru › Web Extensions

tabs.move()

Перемещает одну или несколько вкладок в новое положение в том же окне или в другое окно.

Вы можете перемещать вкладки только в и из окон, WindowType которых "normal".

Это асинхронная функция, которая возвращает Promise.

Синтаксис

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

Параметры

tabIds

integer или array integer. Идентификатор перемещаемой tab, или массив идентификаторов вкладок.

moveProperties

object. Объект, определяющий, куда переместить вкладку(и).

windowId Необязательно

integer. Идентификатор окна, в которое нужно переместить вкладку(и). Если вы опустите этот параметр, то каждая вкладка в tabIds будет перемещена в index в её текущем окне. Если вы укажете этот параметр, а tabIds содержит более одной вкладки, то первая вкладка в tabIds будет перемещена в index, а остальные вкладки последуют за ней в порядке, заданном в tabIds.

index

integer. Позиция индекса, в которую нужно переместить вкладку, начиная с 0. Значение -1 поместит вкладку в конец окна.

Если вы передадите значение меньше -1, функция вызовет ошибку.

Обратите внимание, что закреплённые вкладки нельзя переместить в позицию после любых незакреплённых вкладок в окне, или любые незакреплённые вкладки нельзя переместить в позицию перед закреплёнными вкладками. Например, если в целевом окне есть одна или несколько закреплённых вкладок, и tabIds относится к незакреплённой вкладке, то вы не можете передать здесь 0. Если вы попытаетесь сделать это, функция тихо завершится (она не вызовет ошибку).

Возвращаемое значение

A Promise, который будет выполнен с объектом tabs.Tab или массивом array объектов tabs.Tab, содержащим сведения о перемещённых вкладках. Если вкладки не были перемещены (например, из-за попытки перемещения незакреплённой вкладки перед закреплённой), это будет пустой массив. При возникновении любой ошибки обещание будет отклонено с сообщением об ошибке.

Примеры

Переместить первую вкладку в текущем окне в последнее положение в текущем окне:

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);
});

Примеры расширений

  • tabs-tabs-tabs

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet
move Да 79 46 ? Да Нет ? ? Нет ? Нет ?

Примечание: Этот API основан на API chrome.tabs Chromium. Данная документация взята из tabs.json кода Chromium.

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/move

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API