Mozilla附加组件和var {Cc,Ci,Cu} = require(" chrome");

时间:2015-03-04 21:43:11

标签: firefox firefox-addon firefox-addon-sdk

我是Mozilla插件的新手。 我让插件使用选项来关闭图像和脚本。使用过的代码:

let button_img = ToggleButton({  id: "btn2",  label: "Show/hide images",  icon: "./img1.png",  onChange: imgChange});

var {Cc, Ci, Cu} = require("chrome");
Cu.import("resource://gre/modules/XPCOMUtils.jsm", this);
var PrefBranch = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
button_img_is_cecked=0;
function imgChange(state) {
    if (state.checked) {//Blocking images
        button_img.icon="./img2.png";
        PrefBranch.setIntPref("permissions.default.image",2);//Disable images
        PrefBranch.setIntPref("permissions.default.script",2);//Disable script
        button_img_is_cecked=1
    }else {
        button_img.icon="./img1.png";
        PrefBranch.setIntPref("permissions.default.image",1);//enable images
        PrefBranch.setIntPref("permissions.default.script",1);//enable script
        button_img_is_cecked=0
    }
}

代码和插件工作正常,但当我发送插件给检查时,我会收到消息:

使用标记或非SDK接口

警告:此基于SDK的插件使用的界面不属于SDK或被标记为敏感。

var {Cc, Ci, Cu} = require("chrome");
Cu.import("resource://gre/modules/XPCOMUtils.jsm", this);

我有其他变体来关闭图片和脚本而不使用这个导入的资源吗?

此代码还关闭了Mozilla中所有选项卡的图像。我可以为我的插件工作的一个标签进行操作吗?

1 个答案:

答案 0 :(得分:1)

您应该能够使用此低级sdk模块获取和设置首选项:

https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/preferences_service

所以你的代码可能看起来像:

var gPrefs = require("sdk/preferences/service");

...
gPrefs.set("permissions.default.image",1);
gPrefs.set("permissions.default.script",1);