我的扩展程序在新的FF标签中打开。我想在选项卡处于活动状态时隐藏所有工具栏(tabbar除外)。 我想要的是标准FF插件标签的工作原理(工具 - >插件)。
答案 0 :(得分: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);
答案 1 :(得分: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
窗口。我确定如何做到这一点已经在SO上了。