Chrome的方法 chrome.browserAction.setBadgeText
覆盖了扩展程序图标顶部的文字 . 如果您想要显示总未读邮件,这很方便 .
在开发Firefox Addon SDK扩展时是否存在等效方法,或者在运行时更改图标的最佳方法是什么?
从SDK版本1.11开始,我在Firefox Add-on SDK API中找不到类似的方法 .
Chrome的方法 chrome.browserAction.setBadgeText
覆盖了扩展程序图标顶部的文字 . 如果您想要显示总未读邮件,这很方便 .
在开发Firefox Addon SDK扩展时是否存在等效方法,或者在运行时更改图标的最佳方法是什么?
从SDK版本1.11开始,我在Firefox Add-on SDK API中找不到类似的方法 .
4 回答
Note :由于删除了widget模块,因此Firefox 38中的答案不再适用 . 请改用one of the buttons from the ui module .
我已将
chrome.browserAction
API移植到Firefox,并将其作为Jetpack模块发布,请参阅 https://github.com/Rob--W/browser-action-jplib如果您熟悉
chrome.browserAction
API,则使用此模块并非易事 . 即使您以前从未创建过Firefox插件,也可以在几分钟内开始使用:安装附加SDK(instructions from Mozilla) .
激活SDK(通过运行
addon-sdk
)并创建样板文件(cfx init
) .下载我的浏览器动作Jetpack库(instructions) .
编辑加载项的
package.json
,并添加"browser-action"
作为依赖项 .此时,您已设置所有先决条件 . 剩下的是创建浏览器操作 .
示例
此附加组件在位置栏附近添加了一个浏览器操作,该操作会在单击时显示弹出窗口 . 当您在此弹出窗口的输入字段中键入内容时,选项卡的 Headers 将更改为字段的值 .
lib / main.js
data / popup.html
这是结果的简短截屏视图(注意:工具提示颜色略有偏差; recorded with byzanz):
在
firefox 36
中,您可以在插件的按钮上添加徽章(文本) .https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#Badged_buttons
不,Add-on SDK中没有直接的等价物 . 但是,您可能使用的widget module可以显示任何HTML内容而不仅仅是图标 . 您可以编写HTML内容的脚本,例如在必要时显示一些文字 . 我尝试了以下
lib/main.js
:它使用
icon.html
文件显示图标,并在图标顶部的文本需要更改时向附加的内容脚本发送setBadgeText
消息 . 这是我测试过的data/icon.html
文件:我没有't invest too much effort to make the text look like Chrome'的徽章文字,你可以改进造型 . 默认情况下隐藏文本(为简单起见,我使用了HTML5 hidden attribute) .
data/icon.js
内容脚本也不太复杂:它接收
setBadgeText
消息并相应地设置HTML文档中的文本 . 如果它收到null
作为徽章文本,它也会隐藏badgeText
元素 .它没有在MDN中记录,但是操作和切换按钮也接受icon property作为base64编码的图像 . 通过了解这一事实,可以轻松创建(例如)页面工作者,并使用html canvas元素在图像图标上绘制工具提示,并使用
canvas.toDataURL()
方法返回该工具提示 .