如何在Mozilla SDK的page-mod中更改'exclude'的值并在运行时使用新值?在我的场景中,当用户选择从我的插件中排除页面时,我刷新了简单存储中的“pages”数组 . 我想通过某种方式使用新设置重新启动page-mod立即将此页面排除在处理之外 . 目前,当我重新加载排除的选项卡时,我的脚本仍然在页面上工作 .
目前唯一可行的是静态数组声明:['* .example.org'] .
var excludedUrls = require("sdk/simple-storage").storage.pages; // doesn't
//work.
//When exclude is set to this var I get: "Message: RequirementError:
//If set, the `exclude` option must always contain at least one rule as a
//string, regular expression, or an array of strings and regular expressions."
// excludedUrls does contain an array of stings!
var pm = require("sdk/page-mod").PageMod({
include: ['*'],
//Error when set to: excludedUrls OR require("sdk/simple-storage").storage.pages
exclude: ['*.example.org'],
contentScriptWhen: "ready",
attachTo: ["existing", "top"],
contentScriptFile: [data.url("script.js")]
});
MDN中的页面模式条目:https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/page-mod
1 回答
当我无意中将空值添加到存储时,我收到了该错误 . 记录
excludedUrls
的值以确保它只是字符串 .至于
exclude
,你可以做pm.include = someArray
或pm.include.add(someString)
/pm.include.remove(someString)
(docs) . 你用exclude
做过同样的事吗?如果是这样,您应该file a bug告诉他们将其添加到文档中 .