2013-03-28 1 views
0

이것은 내 코드의 요약본입니다. firefox의 오른쪽 클릭 컨텍스트 메뉴에 메뉴 항목을 표시하려고했습니다.gContextMenu가 null 인 이유는 무엇입니까?

여기 gContextMenu은 null로 표시되며 Firefox의 컨텍스트 메뉴를 망가 뜨립니다. 2 일간의 디버깅 후에 발견했습니다.

<?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> 

참고 :
나는 텍스트를 선택한 경우에만 표시 파이어 폭스의 컨텍스트 메뉴에는 menuItem을 추가 http://kb.mozillazine.org/Adding_items_to_menus를 참조하고있다. 그러나 디버깅 후 근본 원인은 gContextMenu가 null 인 것으로 판명됩니다.

  1. 내 파이어 폭스 버전은 나는 그것이 나중에 추가 할 계획 미세한 컨트롤을 잃은 때문에 새로운 부가-SDK를 사용하지 않으 19.0.2

  2. 입니다. https://developer.mozilla.org/en-US/docs/XUL/School_tutorial,
    https://developer.mozilla.org/en-US/docs/XUL/PopupGuide/Extensions : 저는 초보자입니다

  3. 지금의 같은 XUL 개발에 올 때

  4. 내 참조 .. - (창 크기, 자사의 X, Y 좌표를 제어 같은 미세한 컨트롤) 팝업 요소가 오래 전에 사용되지 않습니다
    https://developer.mozilla.org/en-US/docs/XUL/PopupGuide/ContextMenus#Hiding_and_Showing_Menu_Items_based_on_Context

답변

1

, 그에 따라

<menupopup id="contentAreaContextMenu" 
... 
</menupopup> 
오버레이 변경

또한 인라인 이벤트 처리기를 사용하지 마십시오. 아마도 원본을 덮어 씁니다. Add an event listener programmatically.

+0

이것은 작동하지 않습니다! 그것은 여전히 ​​경고로 null을 보여줍니다! X ( 이것은 \t '\t .. 내 새로운 코드는 \t \t \t \t <메뉴 항목 ID = "는 foobar-쇼 의미 "label ="& foobar.showmeaning.label; "/> \t – user1422163

+0

답변을 업데이트했습니다. – paa