소방대와 같은 하단 창 Firefox 확장을 어떻게 만들 수 있습니까?
-
05-07-2019 - |
문제
여러 확장자는 콘텐츠를 볼 수 있도록 "하단 창"을 제공합니다. Firebug와 Scribefire는 브라우저 하단에 기본 콘텐츠가 나타나는 좋은 예입니다. 이것은 브라우저의 사이드 바 기능과 매우 유사한 것으로 보입니다.
브라우저의 "하단에 대한 사이드 바"가 없기 때문에 확장자에 하단 창을 만들 수있는 모범 사례/방법이 있습니까?
해결책
오버레이를 사용하여 확장자 UI를 만듭니다. 오버레이에서 메인 브라우저 페이지 인 Browser.xul과 관련하여 UI의 삽입 점을 지정합니다.
Firefox의 메인 페이지 Browser.xul에서 발췌
<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>
이전 버전의 FireBug 파일 BrowserOverLay.xul에서 발췌
<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>
Xul Markup의 두 블록은 모두 시작합니다
<vbox id="appcontent".../>
이것은 Gecko Engine이 오버레이가 오버레이되는 페이지와 어떻게 맞는지 결정하는 데 사용하는 것입니다. browseroverlay.xul을 보면 다른 삽입 지점도 표시됩니다. commandset, statusbar
, 등.
자세한 내용은 모질라 개발자 센터.
제휴하지 않습니다 StackOverflow