action.onClicked

当浏览器操作图标被点击时触发。如果浏览器操作有弹出窗口,则此事件不会触发。

注意:此 API 在 Manifest V3 或更高版本中可用。

要定义右键点击操作,请使用具有“browser_action”上下文类型contextMenus API。

语法

js
browser.action.onClicked.addListener(listener)
browser.action.onClicked.removeListener(listener)
browser.action.onClicked.hasListener(listener)

事件有三个函数

addListener(listener)

向此事件添加监听器。

removeListener(listener)

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

hasListener(listener)

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

addListener 语法

参数

监听器

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

tab

tabs.Tab。点击图标时处于活动状态的标签页。

OnClickData

包含有关单击事件信息的对象。

modifiers

一个数组。单击时处于激活状态的键盘修饰键,可以是一个或多个:ShiftAltCommandCtrlMacCtrl

button

一个整数。指示用于单击页面操作图标的按钮:0 表示左键单击或与鼠标无关的单击(例如来自键盘的单击),1 表示中键或滚轮单击。请注意,不支持右键单击,因为 Firefox 在触发此事件之前会消耗该单击以显示上下文菜单。

示例

当用户点击图标时,禁用该图标在当前活动标签页上的功能,并记录该标签页的 URL

js
browser.action.onClicked.addListener((tab) => {
  // disable the active tab
  browser.action.disable(tab.id);
  // requires the "tabs" or "activeTab" permission, or host permissions for the URL
  console.log(tab.url);
});

浏览器兼容性

注意:此 API 基于 Chromium 的chrome.action API。本文档摘录自 Chromium 代码中的browser_action.json