操作是指用户点击扩展程序的工具栏图标(通常称为扩展程序的操作图标)时发生的情况。操作使用 Action API 调用扩展程序功能或打开弹出式窗口。本页介绍了如何调用扩展程序功能。如需使用弹出式窗口,请参阅添加弹出式窗口。
注册操作
如需使用 browser.action API,请将 "action" 键添加到扩展程序的清单文件中。如需详细了解此字段的可选属性,请参阅 browser.action API 参考文档的清单部分。
manifest.json:
{
"name": "My Awesome action Extension",
...
"action": {
...
}
...
}
对操作做出回应
注册一个 onClicked 处理程序,用于在用户点击操作图标时执行。如果在 manifest.json 文件中注册了弹出式窗口,则不会触发此事件。
service-worker.js:
browser.action.onClicked.addListener((tab) => {
browser.action.setTitle({
tabId: tab.id,
title: `You are on tab: ${tab.id}`});
});
有条件地激活操作
借助 browser.declarativeContent API,您可以根据网页网址或 CSS 选择器与网页上的元素匹配的情况来启用扩展程序的操作图标。当扩展程序的操作图标处于停用状态时,该图标会灰显。如果用户点击已停用的图标,系统会显示扩展程序的上下文菜单。
操作徽章
徽章是放置在操作图标顶部的格式化文本,用于指示扩展程序状态或用户需要执行的操作等。为了演示这一点,喝水示例会显示一个带有“开启”字样的徽章,以告知用户已成功设置闹钟;当扩展程序处于空闲状态时,则不显示任何内容。徽章最多可包含 4 个字符。
通过调用 browser.action.setBadgeText() 设置徽章的文本,并通过调用 browser.action.setBadgeBackgroundColor() 设置背景颜色。
service-worker.js:
browser.action.setBadgeText({text: 'ON'});
browser.action.setBadgeBackgroundColor({color: '#4688F1'});
提示
在 manifest.json 文件中 "action" 键下的 "default_title" 字段中注册提示。
manifest.json:
{
"name": "Tab Flipper",
...
"action": {
"default_title": "Press Ctrl(Win)/Command(Mac)+Shift+Right/Left to flip tabs"
}
...
}
您还可以通过调用 action.setTitle() 来设置或更新提示。如果未设置提示,则显示扩展程序的名称。