FireFox addon-sdk page-worker 正则表达式
FireFox addon-sdk page-worker regex
根据 MDN 的页面 page-worker API,我应该可以使用 Reg-ex 作为函数包含部分的参数。
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";'
})
}
这段代码的作用是,当浏览器中加载一个选项卡时,它应该检查 url,如果其中包含 google,我的 ContentScript 应该 运行 .问题是我收到以下错误..
Message: RequirementError: The option "include" must be one of the following types: string, array, undefined
为什么我不能使用正则表达式作为参数? API 明确指出允许使用 Reg-ex。
文档似乎与 page-worker 的初始化代码不匹配,我认为错误在于它只检查字符串或数组。我发现如果将 regex 对象包含在一个数组中,这是可行的:
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
根据 MDN 的页面 page-worker API,我应该可以使用 Reg-ex 作为函数包含部分的参数。
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";'
})
}
这段代码的作用是,当浏览器中加载一个选项卡时,它应该检查 url,如果其中包含 google,我的 ContentScript 应该 运行 .问题是我收到以下错误..
Message: RequirementError: The option "include" must be one of the following types: string, array, undefined
为什么我不能使用正则表达式作为参数? API 明确指出允许使用 Reg-ex。
文档似乎与 page-worker 的初始化代码不匹配,我认为错误在于它只检查字符串或数组。我发现如果将 regex 对象包含在一个数组中,这是可行的:
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