Depeloping firefox插件 - 隐藏所有工具栏

时间:2014-06-05 02:50:40

标签: javascript firefox firefox-addon xul

我的扩展程序在新的FF标签中打开。我想在选项卡处于活动状态时隐藏所有工具栏(tabbar除外)。 我想要的是标准FF插件标签的工作原理(工具 - >插件)。

2 个答案:

答案 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上了。