我正在学习如何编写Chrome扩展程序,并且正在这样做,因为我需要在本地环境中进行测试。我正在尝试制作清单文件的部分,您可以在其中告诉它要运行哪些URL,但我们的测试环境URL不能使用它。我们映射域名,例如:
Example.com而不是http://example.com
但是,当我将它放在我的清单设置中时,它会在没有
的情况下为无效网址提供错误此处显示代码:
{
"manifest_version": 2,
"name": "K Domain Cleaner",
"version": "0.1",
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["jquery.js", "kc-domaincleaner-1.0.js"]
}
]
}
当我尝试设置匹配属性时:
{
"manifest_version": 2,
"name": "K Domain Cleaner",
"version": "0.1",
"content_scripts": [
{
"matches": ["Dev3.com"],
"js": ["jquery.js", "kc-domaincleaner-1.0.js"]
}
]
}
我收到以下错误:
无法从:〜\ Desktop \ Chrome Extensions加载扩展程序 'content_scripts [0] .matches [0]'的值无效:缺少方案分隔符
所以它不仅会在我们的测试域下运行。为什么我不能使用http://的前缀,并且有办法解决这个问题。 http://Dev3.com与Dev3.com完全不同。提前谢谢。
答案 0 :(得分:2)
此 是无效的网址。
网址by definition must contain the scheme。没有它,它可以被解释为一个地址,但不能解释为 (和如何)你想在那个地址访问。
如果您在地址栏中输入没有方案的域名,默认情况下会假设为http:
,就像不输入端口假定某些默认值(取决于方案)。
在那种情况下,“http://Dev3.com完全不同,然后Dev3.com”没有意义,尽管它是完全正确的:一个是有效的URL,另一个只是一个字符串(恰好是一个有效的域名称)。
请注意:Chrome只是隐藏地址栏中的http://
,但它隐含在那里。这可能是你困惑的根源。请放心http://example.com
将覆盖地址栏中显示为example.com
的地址。
正如wOxxOm所提到的,你也应该take a look at the docs。