如何以编程方式从工具栏中删除XUL项目

时间:2012-05-17 12:30:26

标签: firefox-addon xul

我有一个Firefox扩展程序,可以使用推荐的技术在“导航栏”工具栏中添加几个按钮(请参阅https://developer.mozilla.org/en/Code_snippets/Toolbar#Adding_button_by_default)。一切正常,首次启动时添加按钮,用户可以添加,删除或重新组织按钮。

我需要能够通过自定义对话框添加和删除这些按钮。这就是问题所在:我可以通过insertItem方法添加按钮,但没有removeItem方法。

我可以通过调用removeChild DOM方法删除该项,然后从工具栏的currentset属性中删除项ID。但是在重新启动浏览器之前我无法重新启用该项,因为它不会返回到调色板。

// remove item's ID from toolbar's current set of items
// this does not remove the item
toolbar.setAttribute('currentset', newSet);
document.persist(toolbar.id, 'currentset');

// item is removed, but it doesn't return to palette
// so it can't be added againg before restart
toolbar.removeChild(button);

有什么方法我不仅可以添加,还可以以编程方式从Firefox工具栏中删除项目?感谢。

1 个答案:

答案 0 :(得分:1)

如果您只是更新"currentSet"媒体资源但未致电removeChild会怎样?这应该将按钮移动到我认为的调色板。