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