Firefox加载项SDK模式匹配不起作用
当我使用以下代码时Firefox加载项SDK模式匹配不起作用,firefox,firefox-addon,firefox-addon-sdk,Firefox,Firefox Addon,Firefox Addon Sdk,当我使用以下代码时 var pageMod = require("sdk/page-mod"); pageMod.PageMod({ include: "http://www.page.com/user/*", contentScript: 'window.alert("user");' }); 我很警惕。但我想替换“.”部分,所以我尝试: *://*.page.com/user/* *://page.com/user/* *.page.com/user/* 这些都不适合我。dev
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: "http://www.page.com/user/*",
contentScript: 'window.alert("user");'
});
我很警惕。但我想替换“.”部分,所以我尝试:
*://*.page.com/user/*
*://page.com/user/*
*.page.com/user/*
这些都不适合我。developer.mozilla.org中的示例表明,至少其中一个应该可以工作。这些有什么问题?我以前遇到过这个问题,在模式中不能使用超过1个
*
(通配符)
你有两个选择
- 使用一系列网站,即
[”http://www.page.com/user/*", "https://www.page.com/user/*“]
- 使用(正则表达式)
下面是当您尝试
*://*.page.com/user/*
使用以下正则表达式:+:\/\/(.+\)?page\.com\/user\/.*
下面是它的工作原理(如果你不知道正则表达式,我建议你学习它):
如果您还不了解正则表达式,这里是一个学习正则表达式的好网站:
因此,您的完整包含将是:
include: /.+:\/\/(.+\.)?page\.com\/user\/.*/,
注意,在JavaScript中,通过在/
s中丢失正则表达式来定义正则表达式
下面是正则表达式工作的一个例子这是一个完美的答案。非常感谢,没问题!我有这个问题,我试着找出它的年龄,直到我发现你不能使用多个通配符。我没有意识到我可以使用RegEx(反正我也不知道如何使用它),所以我最终得到了一个长数组,其中包括http
,https
,每个数组都有或没有www
,然后我不得不将.com
和.co.uk
!
include: /.+:\/\/(.+\.)?page\.com\/user\/.*/,