Spec-Zone.ru › Web Extensions

tabs.update()

Перейдите к новой вкладке по URL или измените другие свойства вкладки.

Для использования этой функции передайте идентификатор вкладки для обновления и объект updateProperties, содержащий свойства, которые нужно обновить. Свойства, не указанные в updateProperties, не изменяются.

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

Синтаксис

let updating = browser.tabs.update(
  tabId,              // optional integer
  updateProperties    // object
)

Параметры

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

integer. По умолчанию выбрана вкладка текущего окна.

updateProperties

object. Набор свойств для обновления этой вкладки. Более подробную информацию о свойствах см. в документации tabs.Tab.

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

boolean. Нужно ли сделать вкладку активной. Не влияет на фокусировку окна (см. windows.update). Если true, выделенные неактивные вкладки перестанут выделяться. Если false, ничего не происходит.

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

boolean. Нужно ли браузеру автоматически отбросить вкладку при низких ресурсах.

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

boolean. Добавляет или удаляет вкладку из текущего выделения. Если true и вкладка не выделена, она по умолчанию станет активной.

Если вы хотите только выделить вкладку без активации, Firefox принимает установку highlighted в true и active в false. Другие браузеры могут активировать вкладку даже в этом случае.

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

boolean. Нужно ли заменить старый URL в истории навигации вкладки, доступной через кнопку «Назад»?

Например, предположим, что пользователь создаёт новую вкладку с помощью Ctrl+T. По умолчанию в Firefox это загрузит «about:newtab». Если ваш расширение затем обновит эту страницу с помощью tabs.update, без loadReplace, кнопка «Назад» будет активна и вернёт пользователя на «about:newtab». Если расширение установит loadReplace, кнопка «Назад» будет отключена, и это будет так, как будто URL, предоставленный расширением, был первой посещенной страницей в этой вкладке.

Обратите внимание, что исходный URL всё равно будет отображаться в глобальной истории браузера.

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

boolean. Нужно ли заглушить вкладку.

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

integer. Идентификатор вкладки, которая открыла эту вкладку. Если указано, открывающая вкладка должна находиться в том же окне, что и эта вкладка.

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

boolean. Нужно ли закрепить вкладку.

selected Устарело Необязательно

boolean. Нужно ли выбрать вкладку. Это свойство заменено на active и highlighted.

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

integer. Идентификатор преемника вкладки.

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

string. URL для перехода в вкладке.

По соображениям безопасности в Firefox это может быть не привилегированный URL. Поэтому передача следующих URL приведет к ошибке, при этом runtime.lastError будет установлено сообщение об ошибке:

  • URL chrome:
  • URL javascript:
  • URL data:
  • URL file: (например, файлы на файловой системе. Однако для использования файла, упакованного внутри расширения, см. ниже)
  • Привилегированные URL about: (например, about:config, about:addons, about:debugging, about:newtab). Непривилегированные URL (например, about:blank ) разрешены.

Для загрузки страницы, упакованной с расширением, укажите абсолютный URL, начиная с файла manifest.json расширения. Например: '/path/to/my-page.html'. Если вы опустите ведущую '/', URL будет рассматриваться как относительный URL, и разные браузеры могут создавать разные абсолютные URL.

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

A Promise, который будет выполнен с объектом tabs.Tab, содержащим подробности об обновленной вкладке. Объект tabs.Tab не содержит url, title и favIconUrl, если не соответствуют разрешения для хоста или не запрошено разрешение "tabs". Если вкладка не найдена или произошла другая ошибка, promise будет отклонен с сообщением об ошибке.

Примеры

Перейдите к активной вкладке в текущем окне по адресу https://developer.mozilla.org:

function onUpdated(tab) {
  console.log(`Updated tab: ${tab.id}`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

let updating = browser.tabs.update({url: "https://developer.mozilla.org"});
updating.then(onUpdated, onError);

Активируйте первую вкладку в текущем окне и перейдите к https://developer.mozilla.org:

function onUpdated(tab) {
  console.log(`Updated tab: ${tab.id}`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

function updateFirstTab(tabs) {
  let updating = browser.tabs.update(tabs[0].id, {
    active: true,
    url: "https://developer.mozilla.org"
  });
  updating.then(onUpdated, onError);
}

let querying = browser.tabs.query({currentWindow:true});
querying.then(updateFirstTab, onError);

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

  • chill-out
  • firefox-code-search
  • menu-labelled-open
  • tabs-tabs-tabs

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

Рабочий стол Мобильный
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet
update Да 14 45 ? Да 14 ? ? 54 ? 15 ?
active_value Да 14 45 ? Да 14 ? ? 54 ? 15 ?
autoDiscardable_value 54 79 Нет ? 41 Нет ? ? Нет ? Нет ?
highlighted_value Да 79 63 ? Да Нет ? ? Нет ? Нет ?
loadReplace_value Нет Нет 57 ? Нет Нет ? ? Нет ? Нет ?
muted_value 45 79 45 ? 32 14 ? ? Нет ? Нет ?
openerTabId_value 18 79 57 ? 15 14 ? ? Нет ? 15 ?
pinned_value Да 79 45 ? Да 14 ? ? 54–79 ? Нет ?
selected_value Да 79 Нет ? Да 14 ? ? Нет ? 15 ?
url_value Да 14 45 ? Да 14 ? ? 54 ? 15 ?

Примечание: Этот 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/update

Spec-Zone.ru

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