gpt4 book ai didi

regex - 如何使用 pagemod 排除 firefox 插件内容脚本中的站点?

转载 作者:行者123 更新时间:2023-12-02 05:34:59 25 4
gpt4 key购买 nike

我正在开发用户脚本的 Firefox Addon 版本。使用 page-mod 库,插件语法非常简单。例如:

var data = require("self").data;
var pageMod = require("page-mod");
pageMod.PageMod({
include: "*.example.com",
contentScriptWhen: 'end',
contentScriptFile: data.url("test.user.js")
});

这将为匹配 *.example.com 的站点运行脚本 test.user.js。但是,在典型的用户脚本中,我还可以指定一个排除行,这样我就可以轻松绕过包含的 url 的子目录。 IOW,我想要这样一行:

exclude: "*.example.com/somewhere",

但是pagemod文档没有列出任何此类选项(它似乎也不存在)。 在这种情况下如何指定排除?

看起来 include 也可以接受 match-pattern从正则表达式构建。但是,我无法想象正则表达式会匹配 *.example.com 但不会匹配 *.example.com/subdir(但也会匹配 *.example.com/othersubdirs)。

最佳答案

您可以在正则表达式中使用否定先行来实现此目的:

include: /^https?:\/\/([^\/]+\.)?example.com\/(?!somewhere).*/

此正则表达式匹配http://example.com/https://example.com/http://foo.example。 com/http://example.com/subdir 但不是 http://example.com/somewherehttp://fooexample .com/.

关于regex - 如何使用 pagemod 排除 firefox 插件内容脚本中的站点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11853046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com