我找到了一个解决方案,但它并不漂亮,因为 sdk/panel.js 似乎没有公开原始面板对象以便调整/扩展或从现有面板组成另一个面板。
开始:
(1) 获取源码sdk/面板.js https://github.com/mozilla/addon-sdk/blob/release/lib/sdk/panel.js here: panel.js https://raw.github.com/mozilla/addon-sdk/release/lib/sdk/panel.js(原始)或从您的插件 xpi 中找到的 sdk 文件夹中。
(2) 将其作为新文件添加到您的插件包中。
(3) 更改此克隆文件的需要参数(第 16-24 行),以便它们指向插件的正确位置。
例子:
改变
const { validateOptions: valid } = require('./deprecated/api-utils');
to
const { validateOptions: valid } = require('sdk/deprecated/api-utils');
(4)查找line 137 https://github.com/mozilla/addon-sdk/blob/release/lib/sdk/panel.js#L137,并修改变量css
根据您的喜好。就像这样:
...
let css = [
".panel-inner-arrowcontent, .panel-arrowcontent {padding: 0;}", //original css rule
".panel-inner-arrowcontent, .panel-arrowcontent {opacity: 0.50; border-radius: 0.35in;}" //additional css rules: semi-transparent panel with rounded borders.
].join(" ");
...
(5) 使用修改后的panel.js版本,而不是sdk自带的版本。
应该是这样。就像我说的,它并不是特别优雅。