URL匹配firefox插件中的模式

时间:2012-03-19 15:44:46

标签: firefox-addon pattern-matching firefox-addon-sdk

我无法弄清楚如何在Firefox插件中使用正则表达式匹配模式(使用附加组件生成器)。我尝试使用match-pattern package

我的main.js看起来像这样:

var { MatchPattern } = require("match-pattern");
//Matching all urls containing moz and chrome
var pattern = new MatchPattern(/.*moz.*/);
var pattern2 = new MatchPattern(/.*chrome.*/);

var pageMod = require("page-mod");
var data = require("self").data;

pageMod.PageMod({
    include: [pattern, pattern2],
    contentScriptWhen: 'ready',
    contentScriptFile: [data.url('jquery-1.7.1.min.js'),data.url('jquery-ui.js')]

});

但错误控制台显示此错误:

  

时间戳:3/19/2012 9:03:34 PM错误:发生异常。   Traceback(最近一次调用最后一次):文件   “资源://jid0-m6oqvn6bm6wcoo89bddsxwddkou-at-jetpack/api-utils/lib/match-pattern.js”   第87行,在MatchPattern_test中       this.regexp.exec(urlStr)[0] == urlStr)TypeError:this.regexp.exec不是函数

我在这里做错了什么?我可以在include pageMod数组中传递正则表达式匹配模式吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:9)

您不需要直接使用match-pattern包,page-mod模块正在内部使用它。只需传递include参数中的正则表达式:

pageMod.PageMod({
    include: [/.*moz.*/, /.*chrome.*/],
    ...
});