如何在插件栏上添加一个图标在第一次安装
How to add an icon on addon bar at first install?
我按照这个文档Mozilla Developer Network:创建工具栏按钮为我的插件创建一个按钮。它确实工作,但是当我第一次安装插件时,图标没有显示在插件栏上。
我如何使图标出现在插件栏后,用户安装我的插件,然后保持他的位置偏好?
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="chrome://.../content/firefox/browser.css"?>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="text/javascript" src="chrome://...../content/firefox/browser.js" />
<toolbarpalette id="BrowserToolbarPalette">
<toolbarbutton id=".....-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
label="...." tooltiptext="Facebook Manager"
oncommand="System.......Toolbar.Show(event)" />
</toolbarpalette>
</overlay>
如何自动添加按钮到插件栏只一次?
我发现这段代码以编程方式添加按钮,它显示了我的按钮,但它与其他按钮混淆。
var myId = "myaddon-button";
var navBar = document.getElementById("addon-bar");
var curSet = navBar.currentSet.split(",");
if (curSet.indexOf(myId) == -1) {
var set = curSet.slice(0, curSet.length).concat(myId).concat(curSet.slice(curSet.length));
navBar.setAttribute("currentset", set.join(","));
navBar.currentSet = set.join(",");
document.persist(navBar.id, "currentset");
try {
BrowserToolboxCustomizeDone(true);
}
catch (e) {}
}
插件栏工作正常
你只需要把你的元素放在工具栏里,并给它一个id为addon-bar例子:
你的js放到这里
<toolbar id="addon-bar">
<menulist>
<your dropdown blah blah blah>
</menulist>
</toolbar
</overlay>
添加按钮不是"安装操作"。你只需要声明按钮作为覆盖的一部分,当你的扩展覆盖被应用时,它就会被添加进来。
无论如何,看起来你正在添加按钮到工具栏调色板…因此,当你右键单击顶部工具栏并单击"自定义…"时,它将显示在大按钮列表中。"
插件栏在底部,你可以这样添加:
<toolbar id="addon-bar">
<!-- your elements go here. toolbarbutton, etc -->
</toolbar>
似乎addon-bar
是坏的,但我可以把它添加到nav-bar
看Firebug的代码。
if (firstrun) // from preferences
{
Services.prefs.setBoolPref("extensions.addon.FirstRun", false);
Services.prefs.setCharPref("extensions.addon.InstalledVersion", curVersion);
var startButtonId = "addon-button";
var navBar = document.getElementById("nav-bar");
var currentSet = navBar.getAttribute("currentset");
if (!currentSet)
currentSet = navBar.currentSet;
var curSet = currentSet.split(",");
if (curSet.indexOf(startButtonId) == -1)
{
var set = curSet.concat(startButtonId);
navBar.setAttribute("currentset", set.join(","));
navBar.currentSet = set.join(",");
document.persist(navBarId, "currentset");
try
{
BrowserToolboxCustomizeDone(true);
}
catch (e) {}
}
}
相关文章:
- 以最接近的图标为目标,将其更改为另一个图标
- 我是否可以在单击特定图标时更改地图标记图标,然后在单击另一个图标时切换,等等
- 是否可以用D3在圆环图的弧中插入一个图标
- 如何将一个图标转换为另一个图标
- 下一个上一个图标在猫头鹰转盘2中不起作用
- 如何在Episys Symitar中为HTML/Jquery选项卡添加一个图标
- 在ng-click上显示一个图标
- 是否有可能填充一个图标的百分比
- 我可以改变引导崩溃,只显示/展开时,单击一个图标
- 在双击一个图标,弹出和返回屏幕都正在褪色
- 是否可以在工具栏中为firebreath插件创建一个图标
- 显示上一个和下一个图标在弹出图像
- 我可以检索一个图标从地方.sqlite
- 为网站选择一个图标形式的图标包
- 如何更新一个图标,vimeo风格
- 需要弹跳一个图标/按钮没有jQuery UI
- 为什么当我点击一个图标时,会附加2个元素
- 如何在单击复选框时显示下一个图标
- 一个图标上的Javascript,用于展开和折叠不使用回车按钮的表
- jQuery Mobile:尝试在某些文本中间显示一个图标