Get to know MDN better
此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
工具栏按钮是 webextensions 的一种主要 UI 组件,它在浏览器的工具栏中作为图标显示。当用户点击图标时,就会发生下面两种事件中的一样:
在 WebExtensions 中这种按钮被称为浏览器行为按钮,它们可以像下面这样生成:
在这一节中我们将创建一个工具栏按钮的 WebExtension。当用户单击按钮时,会打开一个https://developer.mozilla.org 的新标签页。
首先,新建名为 "button"的文件夹,在该文件夹下创建名为"manifest.json" 的文件,内容如下:
上面内容显示有一个名为“background.js”后台脚本,以及在“icons”文件夹下的浏览器行为按钮图标。
These icons are from the bitsies! iconset created by Recep Kütük.
接下来,在"buttons" 文件夹下创建 "icons" 文件夹,在该文件夹下存放下面的图标文件:
我们有两个图标,大图标用于在高分辨率状态下显示。浏览器会自动选择合适的图标。
接着,在附加组件的根目录下创建 "background.js"文件 , 内容如下:
该文件用来监听浏览器单击事件。当单击事件发生时运行 openPage() 函数,这个函数通过使用tabs 接口加载指定的页面。
现在完整的附加组件看上去应该像下面这样:
button/ icons/ page-16.png page-32.png background.js manifest.json安装这个WebExtension ,然后单击按钮:
尝试在按钮上添加一个弹出菜单。修改 "manifest.json"如下:
我们把原文件做了三处改变:
现在我们要创建弹出菜单。新建名为 "popup" 的文件夹,然后在文件夹内创建"choose_page.html" 文件,该文件内容如下:
你会发现这是一个普通的 HTML 页面,它包含三个 <div>元素,在每个元素中有一个 Mozilla 页面地址。另外还包括一个 CSS 文件和一个 JavaScript 文件,我们会在后面添加它们。
在 "popup" 文件夹下,创建名为 "choose_page.css" 的文件,内容如下:
这是我们弹出菜单的部分样式。
接着,在 "popup" 文件夹下,创建名为 "choose_page.js" 的文件,内容如下:
在我们的脚本中,我们会监听单击的弹出项。首先检查单击的对象是否在给出的页面选择项中,如果不在,则不做任何处理;如果在,则从单击的页面选择项中获取 URL 地址,然后打开一个对应页面的新标签页。注意:我们在弹出脚本中使用 WebExtension 接口,和在后台脚本中使用接口一样。
附加组件的结构最后看上去应该像下面这样:
button/ icons/ page-16.png page-32.png popup/ choose_page.css choose_page.html choose_page.js manifest.json重新加载附加组件,再次单击按钮,并尝试在弹出菜单中单击某个选择项:
页面行为(Page actions) 类似浏览器行为,只是页面行为仅针对特定页面,而浏览器行为则全局有效。
由于浏览器行为总是发生,而页面行为只在特定页面显示。所以页面行为按钮在 URL 地址栏中显示,而浏览器行为按钮则在浏览器工具栏中显示。
browser_action manifest key
browserAction API
Browser action examples:
page_action manifest key
pageAction API
Page action examples: