1

我正在构建一个 Chrome 扩展程序,但由于 Chrome 中的错误导致exclude_matchesCSS 失败,我遇到了问题。我知道有一些方法可以使用 Programmatic Injection 绕过它,但这会导致一些性能问题,所以我想知道是否有人可以想办法以include_matches不包括我想要排除的内容的方式重写我的(因为任何不匹配的东西都会被自动排除)。这是一个很长的镜头,但我想如果有人能做到,他们就会在这里!一个可以使用的示例将是以下代码:

{
....
  "content_scripts": [{
        "matches": [ "http://example.com/*" , "http://*.example.com/*" ]
  }]
....
} 

显然,上面涵盖了 上的任何链接example.com,但我想知道是否有办法以这种方式重写它,使 URLexample.com/z/不符合规则,但诸如此类的 URLexample.com/z/s/仍然可以工作。

基本上,唯一不允许的 URL 是上述格式(“ /z/”)的 URL,所以我想知道是否有一种方法可以指定不允许在该位置带有斜杠的 URL。听起来很愚蠢,我想我对正则表达式的思考太多了,所以任何帮助都非常感谢!

即使我输入这个,我也觉得我可能会被 PI 卡住,但值得一试!

4

1 回答 1

1

不幸的是,谷歌的“匹配模式和球体”并不总是像人们预期的那样运作。特别是,使用?通配符。你会认为你可以使用http://example.com/?*应该匹配“任何单个字符”(而不是空字符串)

无论如何,这有点小技巧,但您至少可以使用26include_globs条规则,如下所示:

{
    ....
    "content_scripts":  [ {
        "matches":      [   "http://example.com/*",
                            "http://*.example.com/*"
        ],
        "include_globs":[   "*example.com/z/a*",
                            "*example.com/z/b*",
                            "*example.com/z/c*",
                            "*example.com/z/d*",
        // Etc., etc.
                            "*example.com/z/x*",
                            "*example.com/z/y*",
                            "*example.com/z/z*"
        ]
    } ]
    ....
}

唉,规则是区分大小写的,因此根据站点/服务器,您可能需要复制大写和国际字符的规则。

于 2013-01-01T07:15:05.847 回答