-2

コードを使用してカスタムコンテキストメニューを作成しています。それは動作しますが、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とInternetExplorerで機能しますが、Firefoxではエラーが発生します。

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

このエラーは、Firefoxでこれまでのところ、次のタグを右クリックした場合にのみ発生することに注意してください。

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

ただし、テキストボックスは正常に機能します。

編集:わかりました。「contextmenu」関数内にコードがなくても、エラーが発生するようです。

更新:Firefoxの開発者ツールjavascriptコンソールを使用してエラーが表示されないため、これはFirefoxのFirebugの問題のようです。

4

2 に答える 2

2

この問題は、Firebugを無効にすることで解決できます。これはFirebugに関連する問題であり、Firefox自体のバグではありません。

于 2013-02-02T08:13:51.990 に答える
1

DOMこのようなオブジェクトでタグ名を使用してみてくださいe.target.tagName

$(document).on("contextmenu",function(e){
        if(e.target.tagName =="A"){
         //do something
        }
});
于 2013-02-01T17:30:47.810 に答える