首页 文章

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

提问于
浏览
2

如何在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 回答

  • 1

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

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

相关问题