使用上下文菜单右键单击Firefox时,目标未定义

时间:2013-02-01 17:28:57

标签: javascript jquery firefox

我正在使用代码创建自定义上下文菜单。然而它的工作在Firefox中存在问题。右键单击选择框/下拉列表或按钮时,它会在Firefox中显示以下错误:

TypeError: this.target is undefined
[Break On This Error]   Filtered chrome url chrome://browser/content/nsContextMenu.js
nsContextMenu.js (line 162)
TypeError: gContextMenu is null

以下代码适用于Chrome和Internet Explorer,但在Firefox中出现错误:

$(document).on("contextmenu",function(e){
        if($(e.target).prop("tagName")=="A"){
         //do something
        }
});

请注意,此错误仅在Firefox中发生,到目前为止,右键单击时会显示以下标记。

<select>
<button> 
<input type='checkbox'>

然而,文本框工作正常。

编辑:好吧,即使“contextmenu”函数中没有代码,它仍然会出错。

更新:这似乎是Firefox中的Firebug问题,因为使用Firefox的开发者工具javascript控制台没有出现任何错误。

2 个答案:

答案 0 :(得分:2)

可以通过禁用Firebug来解决此问题。这是一个与firebug相关的问题,而不是Firefox漏洞。

答案 1 :(得分:1)

尝试将标记名称与DOM

这样的e.target.tagName对象一起使用
$(document).on("contextmenu",function(e){
        if(e.target.tagName =="A"){
         //do something
        }
});