tabs.onMoved

当标签页在窗口内移动时触发。

仅会触发一次移动事件,用以代表用户直接移动了的标签页。不会为其他响应移动的标签页触发移动事件。此事件不会在标签页在窗口之间移动时触发。对于这种情况,请参阅 tabs.onDetached

语法

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

事件具有三个函数:

addListener(listener)

向此事件添加一个监听器。

removeListener(listener)

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

hasListener(listener)

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

addListener 语法

参数

listener

此事件发生时调用的函数。该函数接收以下参数:

tabId

integer。用户移动的标签页的 ID。

moveInfo

object。有关移动的信息。详见 moveInfo 部分。

附加对象

moveInfo

windowId

integer。此标签页所属窗口的 ID。

fromIndex

integer。此标签页在窗口中的初始索引。

toIndex

integer。此标签页在窗口中的最终索引。

示例

监听并记录移动事件:

js
function handleMoved(tabId, moveInfo) {
  console.log(
    `标签页 ${tabId} 从 ${moveInfo.fromIndex} 移动至 ${moveInfo.toIndex}`,
  );
}

browser.tabs.onMoved.addListener(handleMoved);

示例扩展

浏览器兼容性

BCD tables only load in the browser

备注:该 API 基于 Chromium 的 chrome.tabs API。此文档来自 Chromium 代码中的 tabs.json