FireFox addon-sdk页面工作者正则表达式

时间:2015-03-02 15:37:09

标签: javascript firefox-addon-sdk

根据MDN的页面page-worker API,我应该可以使用Reg-ex作为我函数的include部分的参数。

var data = require("sdk/self").data;
var page = require("sdk/page-worker");
var re = new RegExp("/.*google.*/");

function doTheThing(){
    page.Page({
        include: re,
        contentURL: data.url("webPage.html"),
        contentScriptWhen: "ready",
        contentScript: 'document.body.style.border = "5px solid red";'
    })
}

这段代码的作用是当浏览器中加载标签时,它应该检查网址,如果它有google作为其中的一部分,我的ContentScript应该运行。问题是我收到以下错误..

 Message: RequirementError: The option "include" must be one of the following types: string, array, undefined

为什么我不能使用Reg-ex作为我的论点? API明确规定允许使用Reg-ex。

1 个答案:

答案 0 :(得分:1)

看起来文档与页面工作者的初始化代码不匹配,我认为错误是它只检查字符串或数组。我发现,如果将正则表达式对象包含在数组中,则可以正常工作:

var data = require("sdk/self").data;
var page = require("sdk/page-worker");
var re = new RegExp("/.*google.*/");

function doTheThing(){
    page.Page({
        include: [re], // only accepts regex objects in an array
        contentURL: data.url("webPage.html"),
        contentScriptWhen: "ready",
        contentScript: 'document.body.style.border = "5px solid red";'
    })
}

我已记录此错误以跟踪问题:https://bugzilla.mozilla.org/show_bug.cgi?id=1138545