我正在编写一个Firefox插件,来自我原来的Greasemonkey用户脚本,它将eztv网站的链接替换为ajax的链接,因此当您单击show的已监视/未监视链接时,它会向eztv发送ajax请求,并在成功时删除该行。Everthing工作正常,但是如果我指定包含仅在eztv网站上运行,Firefox的JPM SDK Page-Mod永远不会与站点匹配。
require('sdk/page-mod').PageMod({
include: [/(https?://eztv.(it|ch|ag)/myshows)/, '*.eztv-proxy.net/myshows'],
contentScriptWhen: 'ready',
contentScriptFile: ["./jquery-2.2.3.min.js", './main.js'],
contentStyleFile: "./eztv.css",
attachTo: ["existing", "top"],
});
如果我更改为 include: "*"
,脚本加载正常。 我已经测试了正则表达式,它的接缝可以匹配没有 hich 的 https://eztv.ag/myshows,但有些方式在插件中不起作用。
有人能发现问题吗?
终于找到了我问题的答案,正则表达式缺少结束斜杠。此外,如果您使用带有通配符的字符串,例如:"*.eztv.it",则无法指定要匹配的路径或查询,它仅匹配域名。如果您需要匹配域特定的路径,则需要使用正则表达式。