Javascript Chrome内容脚本

Javascript Chrome内容脚本,javascript,json,google-chrome,google-chrome-extension,Javascript,Json,Google Chrome,Google Chrome Extension,我不知道是否有人对chrome在manifest.json文件中使用的json有所了解。。。但本质上,每当我在“匹配”中的url中添加“?”时,就没有匹配的内容 例如: "content_scripts": [ { "css" : [ "mod/reformat.css" ], "matches": [ "http://www.google.com/search*" ] } ], 将reformat.css注入谷歌的搜索页面就可以了 但当我试着让它更具体 "content_script

我不知道是否有人对chrome在manifest.json文件中使用的json有所了解。。。但本质上,每当我在“匹配”中的url中添加“?”时,就没有匹配的内容

例如:

"content_scripts": [ {
  "css" : [ "mod/reformat.css" ],
  "matches": [ "http://www.google.com/search*" ]
} ],
将reformat.css注入谷歌的搜索页面就可以了

但当我试着让它更具体

"content_scripts": [ {
  "css" : [ "mod/reformat.css" ],
  "matches": [ "http://www.google.com/search?*" ]
} ],
没有匹配的内容,即使url确实匹配该模式


是否有人对chrome中如何使用匹配模式字符串以及如何执行更复杂的匹配有任何潜在的见解?我觉得也许“?”是模式匹配的特殊字符,也许有一种编码或。。。idk.

我能找到的关于匹配模式的官方文件是和

我复制了对这里有用的内容

Glob属性遵循与匹配模式不同的、更灵活的语法。可接受的全局字符串是可能包含“通配符”星号和问号的URL

星号(*)匹配任何长度的任何字符串(包括空字符串);问号(?)匹配任何单个字符。

例如,glob“http://???.example.com/foo/*”匹配以下任一项:

"http://www.example.com/foo/bar" "http://the.example.com/foo/"


在您的情况下,
search?
将匹配
searcha
searchb
但不匹配
search

也许至少对chrome内部结构稍有了解的人可以开始浏览和搜索源代码,以找到manifest.json文件的处理位置以及“content\u scripts”如何匹配值已处理。我不确定它是否有效,但请尝试将问号放在方括号内,看看它是否有效。
字符不应该是特殊的:。这是您的实际代码吗?您访问的URL应该是匹配的吗?但是搜索?*甚至不匹配文本“?”,我还尝试从encodeURIComponent(“?”)插入“3%F”和转义版本“\?”,但都不起作用。但是,“匹配”不接受?作为一个操作符,它不是一个Glob属性。我想我将简单地使用search,然后使用exclude_globs使它更具体。