如何更改'排除'的值?在Mozilla SDK的page-mod中,在运行时使用新值?在我的方案中,当用户选择从我的插件中排除页面时,我会刷新“页面”。简单存储中的数组。我想通过某种方式使用新设置重新启动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
答案 0 :(得分:1)
当我无意中将空值添加到存储时,我收到了该错误。记录excludedUrls
的值以确保它只是字符串。
至于exclude
,您可以pm.include = someArray
或pm.include.add(someString)
/ pm.include.remove(someString)
(docs)。你和exclude
做过同样的事吗?如果是这样,您应file a bug告诉他们将其添加到文档中。