content_scripts是否与"chrome-extension://*/*"匹配?

joh*_*ton 7 google-chrome-extension

我想在带有chrome-extension:// URL的iframe上运行内容脚本.我在manifest.json中添加了一行,我从http://code.google.com/chrome/extensions/match_patterns.html文档中复制了一行

 chrome-extension://*/*
Run Code Online (Sandbox Code Playgroud)

但是当我重新加载我的扩展程序时,我会收到警报:

Could not load extension from '/work/sirius/extension'. 
Invalid value for 'content_scripts[2].matches[0]': Invalid scheme.
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

Rob*_*b W 8

否.只有ftp:,file:,http:并且https:可以通过内容脚本声明匹配.

任何matchesexclude_matches字段中的无效URL模式都被拒绝(在尝试加载扩展时生成错误).

permissions清单文件选项的无效模式将被忽略.

如果要在扩展程序的选项卡上运行脚本,请chrome.extension.getViews在后台脚本中使用.更好的是,设计扩展程序的页面,使它们有效地相互通信 (示例).


Joe*_*lum 8

我遇到了完全相同的问题,请查看API http://code.google.com/chrome/extensions/match_patterns.html 它明确表示他们接受chrome-extension://*/*但他们没有.

他们需要更新API,以免混淆人们.

  • 有一个未解决的问题需要更正文档:http://code.google.com/p/chromium/issues/detail?id = 153245 (2认同)

Kon*_*nin 5

似乎Chrome作者已经默默地删除了将内容脚本注入chrome-extension:页面的能力.文档仍然说它工作,甚至包含chrome-extension: scheme的例子,但实际上它不起作用.所以现在只有http:,https:并且ftp:"从框中"开始工作,并且file:如果您的扩展程序的用户在扩展程序(chrome:// extensions /)页面上启用了此功能,则可以正常工作.

更新:现在上面提到的文档已更新,并且没有说明将内容脚本注入chrome-extension:页面的能力.