2008-10-06 2 views
6

몇 가지 확장 프로그램은 콘텐츠를 볼 때 "하단 창"을 제공합니다. Firebug와 ScribeFire는 주요 내용이 브라우저 하단에 나타나는 좋은 예입니다. 이것은 브라우저의 사이드 바 기능과 매우 유사합니다.Firebug와 같은 하단 창을 만들 수있는 방법 Firefox 확장자

브라우저의 "하단에 사이드 바"가 없으므로 확장 프로그램에서 하단 창을 만드는 것이 가장 좋습니다/방법이 있습니까?

답변

8

오버레이를 사용하여 확장 프로그램 UI를 만들 수 있습니다. 오버레이에서 기본 브라우저 페이지 인 browser.xul와 관련하여 UI의 삽입 지점을 지정합니다. 파이어 폭스의 메인 페이지에서 발췌

우리가
<vbox id="appcontent" flex="1"> 
    <tabbrowser id="content" disablehistory="true" 
       flex="1" contenttooltip="aHTMLTooltip" 
       contentcontextmenu="contentAreaContextMenu" 
       onnewtab="BrowserOpenTab();" 
       autocompletepopup="PopupAutoComplete" 
       ondragdrop="nsDragAndDrop.drop(event, contentAreaDNDObserver);" 
       onclick="return contentAreaClick(event, false);" 
       /> 
    </vbox> 

을 가지고 우리가

<vbox id="appcontent"> 
    <splitter id="fbContentSplitter" collapsed="true"/> 
    <vbox id="fbContentBox" collapsed="true" persist="height"> 
     <toolbox id="fbToolbox"> 
      <toolbar id="fbToolbar"> 
       <toolbarbutton id="fbFirebugMenu" type="menu"> 
        <menupopup onpopupshowing="return FirebugChrome.onOptionsShowing(this);"> 
         <menuitem label="&firebug.DisableFirebug;" type="checkbox" 
            oncommand="FirebugChrome.onToggleOption(this)" option="disabledAlways"/> 
         <menuitem type="checkbox" 
            oncommand="FirebugChrome.onToggleOption(this)" option="disabledForSite"/> 
         <menuitem label="&firebug.AllowedSites;" command="cmd_openFirebugPermissions"/> 
         <menuseparator/> 

         <menu label="&firebug.TextSize;"> 
          <menupopup> 
           <menuitem label="&firebug.IncreaseTextSize;" 
              oncommand="Firebug.increaseTextSize(1)"/> 
           <menuitem label="&firebug.DecreaseTextSize;" 
              oncommand="Firebug.increaseTextSize(-1)"/> 
           <menuitem label="&firebug.NormalTextSize;" oncommand="Firebug.setTextSize(0)"/> 
          </menupopup> 
         </menu> 

         <menu label="&firebug.Options;"> 
          <menupopup onpopupshowing="return FirebugChrome.onOptionsShowing(this);"> 
           <menuitem type="checkbox" label="&firebug.AlwaysOpenInWindow;" 
              oncommand="FirebugChrome.onToggleOption(this)" 
              option="openInWindow"/> 

           <menuitem type="checkbox" label="&firebug.ShowTooltips;" 
              oncommand="FirebugChrome.onToggleOption(this)" 
              option="showInfoTips"/> 

           <menuitem type="checkbox" label="&firebug.ShadeBoxModel;" 
              oncommand="FirebugChrome.onToggleOption(this)" 
              option="shadeBoxModel"/> 
          </menupopup> 
         </menu> 
         <menuseparator/> 

         <menuitem label="&firebug.Website;" oncommand="Firebug.visitWebsite('main')"/> 
         <menuitem label="&firebug.Documentation;" oncommand="Firebug.visitWebsite('docs')"/> 
         <menuitem label="&firebug.Forums;" oncommand="Firebug.visitWebsite('discuss')"/> 
         <menuseparator/> 
         <menuitem label="&firebug.Donate;" oncommand="Firebug.visitWebsite('donate')"/> 
        </menupopup> 
       </toolbarbutton> 

       <toolbarbutton id="fbDetachButton" class="toolbarbutton-iconic" 
           tooltiptext="&firebug.DetachFirebug;" command="cmd_detachFirebug"/> 

       <toolbarbutton id="fbCloseButton" class="toolbarbutton-iconic" 
           tooltiptext="&firebug.CloseFirebug;" command="cmd_toggleFirebug"/> 
      </toolbar> 
     </toolbox> 

     <hbox id="fbPanelBox" flex="1"/> 
     <hbox id="fbCommandBox"/> 
    </vbox> 
</vbox> 

공지 사항을 browserOverlay.xul 파일 방화범의 이전 버전에서 발췌 browser.xul 그 XUL 마크 업의 시작의 두 블록 with

<vbox id="appcontent".../> 

이것은 Gecko 엔진이 determi 오버레이가 페이지가 오버레이되는 것과 어떻게 조화를 이루는 지. browserOverlay.xul을 보면 commandset, statusbar 등의 다른 삽입 지점을 볼 수 있습니다.

자세한 내용은 Mozilla Developer Center을 참조하십시오.