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 语法

参数

监听器

此事件发生时调用的函数。该函数会传递以下参数:

tabId

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

moveInfo

object。有关移动的信息。有关更多详细信息,请参阅 moveInfo 部分。

额外对象

moveInfo

windowId

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

fromIndex

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

toIndex

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

示例

监听并记录移动事件

js
function handleMoved(tabId, moveInfo) {
  console.log(
    `Tab ${tabId} moved from ${moveInfo.fromIndex} to ${moveInfo.toIndex}`,
  );
}

browser.tabs.onMoved.addListener(handleMoved);

扩展程序示例

浏览器兼容性

注意: 此 API 基于 Chromium 的 chrome.tabs API。本文档源自 Chromium 代码中的 tabs.json