2014-06-05 1 views
0

내 확장 프로그램이 새 FF 탭으로 열립니다. 탭이 활성화되어있을 때 모든 도구 모음 (tabbar에 대한 exept)을 숨기고 싶습니다. 내가 원하는 것은 정확히 표준 FF 애드온 탭이 어떻게 작동하는지 (tools-> addons)입니다.Depeloping firefox addon - 모든 툴바 숨기기

답변

0

복사 브라우저 환경과 스크래치에이 코드를 붙여 실행 :

Cu.import('resource://gre/modules/Services.jsm'); 
var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService); 
try { 
    sss.unregisterSheet(cssUri, sss.USER_SHEET); 
} catch (ex) {} 

var css = ''; 
css += 'toolbar { display: none }'; 
var cssEnc = encodeURIComponent(css); 
    var newURIParam = { 
     aURL: 'data:text/css,' + cssEnc, 
     aOriginCharset: null, 
     aBaseURI: null 
} 
var cssUri = Services.io.newURI(newURIParam.aURL, newURIParam.aOriginCharset, newURIParam.aBaseURI); 
sss.loadAndRegisterSheet(cssUri, sss.USER_SHEET); 

그냥 sss.unregisterSheet(cssUri, sss.USER_SHEET);

+0

스크래치 패드에서 작동합니다. 하지만 확장 프로그램에서 어떻게 구현할 수 있습니까? – blackdad

+0

나는 당신의 애드온을 봐야 할 것입니다. 그것은 github에 있습니까? – Noitidart

+0

당신은 이것을 당신의 adon에 붙여 넣을 수있을 것입니다. 최상위'try' 문을 제거하면 제거 할 때'unregister' 부분 만 사용하면됩니다. 이것은 창뿐만 아니라 모든 창에 영향을 미치지 만. css를 현재 창에만로드 할 수 있습니다. 이 경우 알려 주시면'loadSheet' 메서드를 알려 드리겠습니다. – Noitidart

0

당신이 개발하고 확장의 종류를 작성하지 않은 실행 제거 ... SDK 또는 XUL.

XUL 확장 프로그램에서 먼저 모든 도구 모음을 가져온 다음 원하는대로 collapsed을 설정하십시오.

다음은 동일한 코드입니다.

function toggleToolbars() { 
    // First get all toolbars (that are not the tab bar) 
    var tbs = Array.filter(document.querySelectorAll('toolbar'), function (x) { 
    return x.id != 'TabsToolbar'; 
    }); 
    // For each toolbar 
    for (var tb of tbs) { 
    // Either un-collapse if we collapsed it. 
    if (tb.getAttribute('my-addon-collapsed')) { 
     tb.removeAttribute('collapsed'); 
     tb.removeAttribute('my-addon-collapsed'); 
    } 
    // Or collapse other-wise, if not already collapsed 
    else if (!tb.getAttribute('collapsed')) { 
     tb.setAttribute('collapsed', 'true'); 
     tb.setAttribute('my-addon-collapsed', 'true'); 
    } 
    } 
} 

수동 도구 모음을, 다른 부가 기능 부가 기능은 완전히 새로운 도구 모음 나중에 등등 복원 등의 사용자로 코너 케이스를 처리하는 코드를 오류 복구 할 수 있습니다.

SDK 부가 기능의 경우 먼저 browser.xul 창을 먼저 가져와야합니다. 나는 이것을하는 법이 이미 어딘가에 있다고 확신한다.