firefox扩展中的复选框

时间:2011-02-09 13:31:29

标签: javascript firefox-addon

我想为我的扩展程序放置一个带有支票的菜单项。

<menupopup id="menu_ToolsPopup">
    <menuitem type="checkbox" label="Convert" id="menu_ToolsPopupItem"/>    
</menupopup>

overlay.js中

window.addEventListener("load", function() {myExtension.init()}, false);
init: function() {          
      window.addEventListener("copy", function() {myExtension.Test()}, false);       
 },

  Test: function (win) {    
    var x= document.getElementById("menu_ToolsPopupItem"); //not null!!! alert(x)=> [object XULElement]
    alert(x.checked);//-> undefined
}

我没有得到菜单项的状态。

以及如何在重新启动浏览器后保存选择?

2 个答案:

答案 0 :(得分:0)

看起来你必须访问该属性 - 在这种情况下没有方便的属性包装:

[attribute] checked
    Type: boolean 
    Indicates whether the element is checked or not. 
    Use hasAttribute() to determine whether this attribute is set instead of getAttribute().

https://developer.mozilla.org/en/XUL/menuitem#a-checked


  

以及如何在重新启动浏览器后保存选择?

可能有几种不同的方式。想到的第一个是将它存储在偏好中。 https://developer.mozilla.org/en/Code_snippets/Preferences

答案 1 :(得分:0)

历史上,menuitems通常没有属性的属性包装器的原因是,有些情况下它们不起作用。我不知道这是否仍然存在。

要在重新启动时保留menuitem的checked属性,最简单的方法是添加persist="checked"属性。