0

这是我的代码的精简版。我试图在 Firefox 的右键单击上下文菜单中显示一个菜单项。

这里gContextMenu显示为空,它搞砸了 Firefox 的上下文菜单。经过两天的调试,我发现了这一点。

<?xml version="1.0"?>

<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
<?xml-stylesheet href="chrome://foobar/skin/foobar.css" type="text/css"?>

<!DOCTYPE window SYSTEM "chrome://foobar/locale/foobar.dtd">

<overlay id="foobar-browser-overlay"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">



    <stringbundleset id="stringbundleset">
    <stringbundle id="foobar-string-bundle" src="chrome://foobar/locale/foobar.properties"/>
    </stringbundleset>

    <popup id="contentAreaContextMenu" onpopupshowing="alert(gContextMenu)">
        <menuseparator />
        <menuitem id="foobar-show-meaning" label="&foobar.showmeaning.label;"  />
    </popup>
</overlay>

注意:
我指的是http://kb.mozillazine.org/Adding_items_to_menus将 menuItem 添加到 firefox 的上下文菜单中,仅在选择文本时显示。但是经过调试发现根本原因是gContextMenu为null。

  1. 我的 Firefox 版本是19.0.2

  2. 我不想使用新的 addon-sdk,因为它缺少我计划稍后添加的更精细的控件。(更精细的控件,例如 - 控制窗口大小、其 x、y 坐标)

  3. 到目前为止,我是 XUL 开发的新手。

  4. 我的参考资料:https ://developer.mozilla.org/en-US/docs/XUL/School_tutorial,https :
    //developer.mozilla.org/en-US/docs/XUL/PopupGuide/Extensions,https
    ://developer .mozilla.org/en-US/docs/XUL/PopupGuide/ContextMenus#Hiding_and_Showing_Menu_Items_based_on_Context
4

1 回答 1

1

弹出元素很久以前就被弃用了,相应地改变你的覆盖

<menupopup id="contentAreaContextMenu"
...
</menupopup>

也不要使用内联事件处理程序,它可能会覆盖原始事件处理程序。以编程方式添加事件侦听器

于 2013-03-28T20:16:54.087 回答