2011-04-10 5 views
3

나는이 문서 Mozilla Developer Network: Creating toolbar buttons을 따라 내 addon 용 버튼을 만들었습니다. 그것은 작동하지만 addon을 처음 설치하면 아이콘이 addon bar에 표시되지 않습니다.처음에 addon bar에 아이콘을 추가하는 방법은 무엇입니까?

사용자가 내 addon을 설치 한 직후에 addon bar에 아이콘을 표시 한 다음 위치 환경 설정을 유지하려면 어떻게합니까?

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/css" href="chrome://.../content/firefox/browser.css"?> 

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

    <script type="text/javascript" src="chrome://...../content/firefox/browser.js" /> 

    <toolbarpalette id="BrowserToolbarPalette"> 
    <toolbarbutton id=".....-button" class="toolbarbutton-1 chromeclass-toolbar-additional" 
     label="...." tooltiptext="Facebook Manager" 
     oncommand="System.......Toolbar.Show(event)" /> 
    </toolbarpalette> 

</overlay> 

버튼을 addon bar에 한 번만 추가하는 방법은 무엇입니까?

단추를 프로그래밍 방식으로 추가하는 코드를 발견했습니다.이 코드는 내 단추를 보여 주지만 다른 단추는 엉망입니다.

var myId = "myaddon-button"; 
var navBar = document.getElementById("addon-bar"); 
var curSet = navBar.currentSet.split(","); 

if (curSet.indexOf(myId) == -1) { 
    var set = curSet.slice(0, curSet.length).concat(myId).concat(curSet.slice(curSet.length)); 

    navBar.setAttribute("currentset", set.join(",")); 
    navBar.currentSet = set.join(","); 
    document.persist(navBar.id, "currentset"); 
    try { 
     BrowserToolboxCustomizeDone(true); 
    } 
    catch (e) {} 
} 
+0

무엇 당신은''내부에 무엇이 잘못되었는지 더 잘 이해할 수 있습니까? –

답변

0

addon-bar가 깨진 것 같다,하지만 난 방화범의 코드를 찾고 nav-bar에 그것을 추가 할 수 있습니다.

if (firstrun) // from preferences 
{ 
    Services.prefs.setBoolPref("extensions.addon.FirstRun", false); 
    Services.prefs.setCharPref("extensions.addon.InstalledVersion", curVersion); 

    var startButtonId = "addon-button"; 
    var navBar = document.getElementById("nav-bar"); 
    var currentSet = navBar.getAttribute("currentset"); 
    if (!currentSet) 
     currentSet = navBar.currentSet; 

    var curSet = currentSet.split(","); 
    if (curSet.indexOf(startButtonId) == -1) 
    { 
     var set = curSet.concat(startButtonId); 
     navBar.setAttribute("currentset", set.join(",")); 
     navBar.currentSet = set.join(","); 
     document.persist(navBarId, "currentset"); 

     try 
     { 
      BrowserToolboxCustomizeDone(true); 
     } 
     catch (e) {} 
    } 
} 
0

버튼을 추가하는 것은 '설치 조치'가 아닙니다. 오버레이의 일부로 버튼을 선언하면 확장 오버레이가 적용될 때 추가됩니다.

어쨌든 단추를 도구 팔레트 팔레트에 추가하는 것처럼 보입니다 ... 그래서 상단 도구 모음에서 마우스 오른쪽 단추를 클릭하고 "사용자 지정 ..."을 클릭하면 큰 단추 목록에 표시됩니다.

애드온 바는 하단에 그리고 당신과 같이 여기에 추가 할 수 있습니다

<toolbar id="addon-bar"> 
    <!-- your elements go here. toolbarbutton, etc --> 
</toolbar> 
+0

정적 버튼을 만드는 IIRC이지만 이동식 = "true"를 사용하여 사용자가 다시 사용자 정의 할 수 있다고 생각합니다. – Neil

1

애드온 바가 잘 작동합니다. 당신은 단지 도구 모음 내부에 요소를 넣어 그것을 부가 기능 바 예를의 ID를 제공해야

:

당신의 JS는 간다

<toolbar id="addon-bar"> 
     <menulist> 
      <your dropdown blah blah blah> 
     </menulist> 
    </toolbar 
</overlay> 
, 당신은 우리의 조각을 보여줄 수하십시오
관련 문제