我是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中所有选项卡的图像。我可以为我的插件工作的一个标签进行操作吗?
答案 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);