我有一个SDK扩展,可以在页面上注入(inject)脚本。在插件选项中,有1个bool用于打开或关闭该脚本。
var pageMod = require("sdk/page-mod");
var data = require("sdk/self").data;
var prefs = require("sdk/simple-prefs").prefs;
function onPrefChange(prefName) {
if (prefs.showMAC) {
//if true - apply pagemod
pageMod.PageMod({
include: "*.mydomen.net",
attachTo: ["existing", "top"],
contentScriptFile: data.url("proxy_open.js")
});
}else{
//if false - remove pagemod
}
}
require("sdk/simple-prefs").on("showMAC", onPrefChange);
我是所有这些扩展知识的新手,无法找到有关如何正确应用
destroy()
的任何信息,有人可以解释如何正确执行此操作吗?我试过了pageMod.destroy();
,它给出了“not a function”错误。 最佳答案
先制作var mod = null
,然后再制作mod = pageMod
就像是一种魅力。
var mod = null;
var prefs = require("sdk/simple-prefs").prefs;
function onPrefChange(prefName) {
if (prefs.showMAC) {
mod = pageMod.PageMod({
include: "*.mydomen.net",
attachTo: ["existing", "top"],
contentScriptFile: data.url("proxy_open.js")
});
}else{
mod.destroy();
}
}
require("sdk/simple-prefs").on("showMAC", onPrefChange)