diff --git a/files/zh-cn/mozilla/add-ons/webextensions/api/pageaction/onclicked/index.md b/files/zh-cn/mozilla/add-ons/webextensions/api/pageaction/onclicked/index.md new file mode 100644 index 00000000000000..ccf1d26e62cd31 --- /dev/null +++ b/files/zh-cn/mozilla/add-ons/webextensions/api/pageaction/onclicked/index.md @@ -0,0 +1,102 @@ +--- +title: pageAction.onClicked +slug: Mozilla/Add-ons/WebExtensions/API/pageAction/onClicked +l10n: + sourceCommit: acc6ec7d08ede0727a68cbc696e983c572940f62 +--- + +{{AddonSidebar}} + +当页面操作图标被点击时触发。如果页面操作有弹窗,则该事件将不会被触发。 + +要定义右键单击操作,请使用{{WebExtAPIRef('contextMenus', "上下文菜单", "", "nocode")}} API(使用 `page_action` {{WebExtAPIRef('contextMenus/ContextType', '上下文类型', '', 'nocode')}})。 + +## 语法 + +```js-nolint +browser.pageAction.onClicked.addListener(listener) +browser.pageAction.onClicked.removeListener(listener) +browser.pageAction.onClicked.hasListener(listener) +``` + +事件有三个函数: + +- `addListener(listener)` + - : 为该事件添加监听器。 +- `removeListener(listener)` + - : 停止监听此事件。`listener` 参数是要移除的监听器。 +- `hasListener(listener)` + - : 检查是否已为此事件注册了 `listener`。如果正在监听,则返回 `true`,否则返回 `false`。 + +## addListener 语法 + +### 参数 + +- `listener` + + - : 当该事件发生时要调用的函数。该函数接收如下参数: + + - `tab` + - : 一个表示被点击的页面操作的标签页的 {{WebExtAPIRef('tabs.Tab')}} 对象。 + - `OnClickData` + + - : 包含有关点击的信息的对象。 + + - `modifiers` + - : `array`。点击页面操作按钮时使用的键盘修饰符,可以是 `Shift`、`Alt`、`Command`、`Ctrl` 或 `MacCtrl` 中的一个或多个。 + - `button` + - : `integer`。指示用于点击页面操作图标的按钮:`0` 表示左键单击或不与鼠标相关的点击(例如键盘点击),`1` 表示中键或滚轮点击。请注意,并不支持右键单击,因为 Firefox 在触发此事件之前会消耗右键单击以显示上下文菜单。 + +## 浏览器兼容性 + +{{Compat}} + +## 示例 + +以下示例演示了如何在用户单击页面操作时隐藏该页面操作,并将活动标签页导航到“”: + +```js +let catGifs = "https://giphy.com/explore/cat"; + +browser.pageAction.onClicked.addListener((tab) => { + browser.pageAction.hide(tab.id); + browser.tabs.update({ url: catGifs }); +}); + +browser.pageAction.onClicked.addListener(() => {}); +``` + +{{WebExtExamples}} + +> [!NOTE] +> 该 API 基于 Chromium 的 [`chrome.pageAction`](https://developer.chrome.google.cn/docs/extensions/mv2/reference/pageAction#event-onClicked) API。本文衍生自 Chromium 代码中的 [`page_action.json`](https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/page_action.json)。 + +