[在Firefox中,根据主题和操作系统,图标是不同的。示例:
在Linux上:(来源:saranitus.com)
注意在Windows 10上图标在人物角色上如何变暗,在角色上为白色(很明显)。
事实是,my addon向Firefox菜单添加了一个新按钮(准确地说是一个切换按钮),目前只有一个静态图标。我知道在JPM(或CFX,几乎相同的东西)上制作了一个插件来实现此功能,但是我不记得是哪个,也不记得是如何实现的。如何根据操作系统和主题更改图标?
找到了。这是Mozilla的Addon兼容性报告器。
将此添加到您的启动代码:
var {Cc, Ci, Cu} = require("chrome");
if ( Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser").navigator.oscpu.indexOf("Windows NT 10.0") > -1 ) {
var icontype = "Modern";
}
else if ( Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser").navigator.oscpu.indexOf("Windows NT 6.3") > -1 || Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser").navigator.oscpu.indexOf("Windows NT 6.2") > -1) {
var icontype = "Metro";
}
else if ( Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser").navigator.oscpu.indexOf("Windows NT 6.1") > -1 || Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser").navigator.oscpu.indexOf("Windows NT 6.0") > -1) {
var icontype = "Aero";
}
else if ( Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser").navigator.oscpu.indexOf("Mac OS X") > -1 ) {
var icontype = "Aqua";
}
else {
var icontype = "Linux";
}
然后,在声明图标时,只需键入:
icon: {
"16": "./" + icontype + "_16.png",
"32": "./" + icontype + "_32.png"
},
因此,当您为Mac OS X创建图标时,将其拖放为data/Aqua_16.png
,它应该可以使用。