Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firefox上下文菜单项未显示_Firefox_Firefox Addon_Contextmenu - Fatal编程技术网

Firefox上下文菜单项未显示

Firefox上下文菜单项未显示,firefox,firefox-addon,contextmenu,Firefox,Firefox Addon,Contextmenu,我有一个非常简单的扩展,我想根据内容在上下文菜单上显示一个新项目,这应该非常简单,有很多教程说明了如何做到这一点 问题是,只要我在contentareacontextmenu我的新元素中添加popushowing的侦听器,即使我不隐藏它,它也不会显示 以下是xul代码: 和prot-on.js: var质子={ init:function(){ 试试{ if(document.getElementById(“contentAreaContextMenu”)){ document.getEle

我有一个非常简单的扩展,我想根据内容在上下文菜单上显示一个新项目,这应该非常简单,有很多教程说明了如何做到这一点

问题是,只要我在
contentareacontextmenu
我的新元素中添加
popushowing
的侦听器,即使我不隐藏它,它也不会显示

以下是xul代码:


和prot-on.js:

var质子={
init:function(){
试试{
if(document.getElementById(“contentAreaContextMenu”)){
document.getElementById(“contentAreaContextMenu”).addEventListener(“popupshowing”,this.showContextMenu,false);
}
}捕获(e){
这是一个例外(e);
}       
},
您好:函数(){
试一试{
警惕(“你好,世界2!”);
}捕获(e){
这是一个例外(e);
}
}, 
showContextMenu:功能(事件){
试一试{
var show=document.getElementById(“主项上的保护”);
show.setAttribute(“隐藏”,false);
}捕获(e){
这是一个例外(e);
}
}, 
manageException:函数(异常){
window.openDialog(
"chrome://Prot-On/content/resources/html/showErrorBacktrace.htm",
“errorbacktrace”,
“centerscreen=yes,chrome=yes,modal=yes,Resizeable=yes”,
例外情况,
“显示错误”
);
}   
}
试一试{
addEventListener(“load”,proton.init(),false);
}捕获(e){
质子异常(e);
}
如果我只是评论一下这些行:

if(document.getElementById(“contentAreaContextMenu”)){
document.getElementById(“contentAreaContextMenu”).addEventListener(“popupshowing”,this.showContextMenu,false);
}
一切正常,所以我不确定问题出在哪里


manageException函数只是显示任何异常及其正常工作的附加信息,以防您怀疑。

您在窗口加载时立即执行
proton.init
,而不是将对它的引用传递给
addEventListener

更改此行:

window.addEventListener("load", proton.init(), false);
致:


在窗口加载时,您将立即执行
proton.init
,而不是将对它的引用传递给
addEventListener

更改此行:

window.addEventListener("load", proton.init(), false);
致:


我现在觉得很尴尬,这么愚蠢的事情。不管怎么说,谢谢你的解决方案。我现在感到尴尬,如此愚蠢的事情。无论如何,谢谢你的解决方案。