如何动态更改Mozilla SDK page-mod中的排除网址

时间:2014-10-06 18:21:38

标签: javascript firefox firefox-addon firefox-addon-sdk mozilla

如何更改'排除'的值?在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

1 个答案:

答案 0 :(得分:1)

当我无意中将空值添加到存储时,我收到了该错误。记录excludedUrls的值以确保它只是字符串。

至于exclude,您可以pm.include = someArraypm.include.add(someString) / pm.include.remove(someString)docs)。你和exclude做过同样的事吗?如果是这样,您应file a bug告诉他们将其添加到文档中。