tabGroups.onMoved

当标签页组在一个窗口内移动或移动到另一个窗口时触发。属于该组内的标签页也会触发 tabs.onMoved 事件。

该事件会传递一个 tabGroups.TabGroup 对象。该对象包含 windowId,但不包含标签页组的位置。要确定标签页组的位置,请使用带有 groupIdtabs.query(),并读取返回标签页的 index 属性。

在 Chrome 中,当标签页组在窗口之间移动时,此事件不会触发;取而代之的是,该组会从一个窗口中移除,然后在另一个窗口中创建(触发 tabGroups.onRemovedtabGroups.onCreated)。

语法

js
browser.tabGroups.onMoved.addListener(listener)
browser.tabGroups.onMoved.removeListener(listener)
browser.tabGroups.onMoved.hasListener(listener)

事件有三个函数

addListener(listener)

向此事件添加监听器。

removeListener(listener)

停止监听此事件。listener 参数是要移除的侦听器。

hasListener(listener)

检查 listener 是否已为此事件注册。如果正在监听,则返回 true,否则返回 false

addListener 语法

参数

监听器

当此事件发生时调用的函数。该函数将传递此参数

group

tabGroups.TabGroup。被移动的标签页组状态的详细信息。

示例

监听并记录标签页组的移动

js
function tabGroupMoved(group) {
  console.log(
    `Tab group with ID ${group.id} was moved to window ${group.windowId}.`,
  );
}

browser.tabGroups.onMoved.addListener(tabGroupMoved);

定位一个被移动到另一个窗口的标签页组。

js
browser.tabGroups.onMoved.addListener(group => {
  let tabs = await browser.tabs.query({
    groupId: group.id,
  });
  console.log(`Moved tab group to ${tabs[0].index} in window ${group.windowId}`);
});

浏览器兼容性