我想为我的扩展程序放置一个带有支票的菜单项。
<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 :(得分: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"
属性。