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 语法
参数
listener
-
该函数将在事件触发时被调用。会为该函数传递以下参数:
tab
-
tabs.Tab
,当图标被点击时的活动标签页。 OnClickData
-
包含有关点击的信息的对象。
modifiers
-
array
,点击时活动的键盘修饰符,可以是Shift
、Alt
、Command
、Ctrl
或MacCtrl
中的一个或多个。 -
integer
,指示用于点击页面操作图标的按钮:0
表示左键点击或不是鼠标的点击,例如键盘点击,1
表示中键或滚轮点击。请注意,不支持右键点击,因为 Firefox 在触发此事件之前会消耗该点击以显示上下文菜单。
示例
当用户点击图标时,禁用当前标签页,并记录标签页的 URL:
js
browser.action.onClicked.addListener((tab) => {
// 禁用活动标签页
browser.action.disable(tab.id);
// 需要“tabs”或“activeTab”权限,或对该 URL 的“host”权限。
console.log(tab.url);
});
浏览器兼容性
BCD tables only load in the browser
备注:
该 API 基于 Chromium 的 chrome.action
API。本文衍生自 Chromium 代码中的 browser_action.json
。