根据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。
答案 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