2011-02-09 44 views
2

我想为我的扩展程序添加一个检查菜单项。火狐扩展中的复选框

<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 
} 

我不明白的菜单项的状态。

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

回答

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

+0

谢谢,我的第二个问题呢? – urker 2011-02-09 16:51:16

0

从历史上看,原因菜单项通常没有属性包装的属性是有一些情况下,他们没有工作。我不知道这是否仍然如此。

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

相关问题