Spec-Zone.ru › Web Extensions

tabs.moveInSuccession()

Изменяет отношения последовательности для группы вкладок.

Используя API tabs, вкладке можно назначить преемника в том же окне. Если вкладка B является преемником вкладки A, а вкладка A закрыта, будучи активной, то вкладка B будет активирована следующей. Если у вкладки A нет преемника, браузер самостоятельно определит, какую вкладку активировать следующей. Если вкладка B является преемником вкладки A, то вкладка A называется предшественником вкладки B. У вкладки может быть не более одного преемника, но любое количество предшественников. Вкладка не может назначить себе или вкладке из другого окна в качестве преемника.

Все вкладки изначально не имеют преемника; вкладки получают преемника только если это назначено WebExtension. Тем не менее, браузер не должен оставлять вкладку без преемника в случае отношений последовательности с другими вкладками, если возможно: если вкладка B является преемником вкладки A, а вкладка C является преемником вкладки B, а вкладка B закрыта (или перемещена в другое окно), тогда вкладка A получит вкладку C в качестве преемника. Предотвращение ситуации, когда C остаётся без преемника, называется перемещением вкладки (B) из линии преемственности.

tabs.moveInSuccession() принимает массив идентификаторов вкладок и перемещает все эти вкладки из их линий преемственности. Затем он делает каждую вкладку преемником предыдущей вкладки в массиве, образуя цепочку. Дополнительно можно установить преемника последней вкладки в цепочке на якорную вкладку, которая не перемещается из своей линии преемственности. Дополнительные параметры могут управлять тем, будет ли цепочка вкладок "вставлена" или "присоединена" к якорной вкладке, и будет ли операция действовать как вставка в связанный список.

Хотя преемник вкладки можно назначить с помощью tabs.update(), часто желательно использовать tabs.moveInSuccession() для изменения преемников, даже если только одна вкладка меняет своего преемника. Разница в том, что browser.tabs.moveInSuccession([a], b) перемещает вкладку a из ее линии преемственности, поэтому все предшественники a унаследуют предыдущего преемника a; в то время как если использовать browser.tabs.update(a, {successorTabId: b}), вкладка a может продолжать быть преемником других вкладок, что может быть неожиданно. Ещё одно преимущество tabs.moveInSuccession() заключается в том, что все изменения преемственности происходят атомарно, без необходимости беспокоиться о гонках между вызовами tabs.update() и tabs.get() и другими операциями, такими как закрытие вкладки пользователем.

Синтаксис

browser.tabs.moveInSuccession([1, 3, 5, 7, 2, 9], 4, {insert:true})

Параметры

tabIds

array из integer. Массив идентификаторов вкладок. Порядок элементов в массиве определяет отношение вкладок. Любые недопустимые идентификаторы вкладок или идентификаторы вкладок, соответствующие вкладкам, не находящимся в том же окне, что и tabId (или первой вкладке в массиве, если tabId опущено), будут проигнорированы — они сохранят свои текущие преемники и предшественники.

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

integer. Идентификатор вкладки, которая будет преемником последней вкладки в массиве tabIds. Если этот идентификатор недействителен или tabs.TAB_ID_NONE, у последней вкладки не будет преемника. По умолчанию tabs.TAB_ID_NONE.

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

object.

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

boolean. Определяет, будет ли перемещение вкладок в tabIds перед или после tabId в последовательности. Если false, вкладки перемещаются перед tabId, если true, вкладки перемещаются после tabId. По умолчанию false.

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

boolean. Определяет, следует ли связать текущих предшественников или преемника (в зависимости от options.append) вкладки tabId с другой стороной цепочки после вставки или добавления. Если true, выполняется одно из следующих действий: если options.append равно false, первая вкладка в массиве устанавливается в качестве преемника любых текущих предшественников tabId; если options.append равно true, текущий преемник tabId устанавливается в качестве преемника последней вкладки в массиве. По умолчанию false.

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
moveInSuccession Нет Нет 65 ? Нет Нет ? ? Нет ? Нет ?

© 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/moveInSuccession

Spec-Zone.ru

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