FireFox插件sdk页面工作正则表达式

FireFox addon-sdk page-worker regex

本文关键字:工作 正则表达式 插件 sdk FireFox      更新时间:2023-09-26

根据MDN的页面工作器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";'
    })
}

这段代码所做的是,当一个选项卡加载到浏览器中时,它应该检查url,如果它有谷歌作为其中的一部分,我的ContentScript应该运行。问题是我得到了以下错误。。

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

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

看起来文档与页面工作者的初始化代码不匹配,我认为错误在于它只检查字符串或数组。我发现,如果您将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