动态删除XUL菜单

时间:2011-11-16 19:01:08

标签: javascript firefox firefox-addon xul

我遇到了一个问题,我无法删除在我的扩展程序中动态创建的菜单。我可以使用document.getElementById获取菜单对象,或者使用我在下面的jquery内容。基本上,用户点击“删除”菜单项,它应该删除父菜单(有2个父母,因为它进入菜单>弹出> menuitem(点击))。

警报会针对我要删除的内容吐出正确的idremoveObj.remove();崩溃扩展程序。最后一行似乎没有做任何事情(除非第二次点击删除它不再能找到id),但它仍然在UI中可见。

代码:

var jObj = $(menuObject);
var removeObj = $(jObj).parent().parent();
var id = removeObj.attr('id');
alert(id);
//removeObj.remove();           
$(removeObj).parent().removeChild(document.getElementById(id));

这不是因为jquery。我写了这个,它在执行后完全禁用右键菜单(但在if-case中返回正确的id位置)

                var mainMenu = document.getElementById('rclickMenu_MenuPopupContainer');
                var toRemove = document.getElementById("rclickMenu_"+main);
                for(var i=0; i < mainMenu.children.length; i++){
                    if(mainMenu.children[i].getAttribute('id') == toRemove.getAttribute('id')){
                        alert(toRemove.getAttribute('id'));
                        //mainMenu.removeItemAt(i); 
                        mainMenu.removeChild(toRemove);
                    }
                }

1 个答案:

答案 0 :(得分:0)

执行:

let (ele = document.getElementById(id)) {
    ele.parentNode.removeChild(ele);
}