내 확장 프로그램이 새 FF 탭으로 열립니다. 탭이 활성화되어있을 때 모든 도구 모음 (tabbar에 대한 exept)을 숨기고 싶습니다. 내가 원하는 것은 정확히 표준 FF 애드온 탭이 어떻게 작동하는지 (tools-> addons)입니다.Depeloping firefox addon - 모든 툴바 숨기기
0
A
답변
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
당신이 개발하고 확장의 종류를 작성하지 않은 실행 제거 ... 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
창을 먼저 가져와야합니다. 나는 이것을하는 법이 이미 어딘가에 있다고 확신한다.
스크래치 패드에서 작동합니다. 하지만 확장 프로그램에서 어떻게 구현할 수 있습니까? – blackdad
나는 당신의 애드온을 봐야 할 것입니다. 그것은 github에 있습니까? – Noitidart
당신은 이것을 당신의 adon에 붙여 넣을 수있을 것입니다. 최상위'try' 문을 제거하면 제거 할 때'unregister' 부분 만 사용하면됩니다. 이것은 창뿐만 아니라 모든 창에 영향을 미치지 만. css를 현재 창에만로드 할 수 있습니다. 이 경우 알려 주시면'loadSheet' 메서드를 알려 드리겠습니다. – Noitidart