【发布时间】:2016-04-13 00:29:37
【问题描述】:
我创建了一个扩展,我正在尝试检测这个扩展是否存在于我的一个虚拟主机中。
这是检测是否存在扩展的代码:(script.js)
var detect = function(base, if_installed, if_not_installed) {
var s = document.createElement('script');
s.onerror = if_not_installed;
s.onload = if_installed;
document.body.appendChild(s);
s.src = base + '/manifest.json';
};
detect('chrome-extension://' + "myExtensionId", function() {alert('boom!');},
function() {alert("buf. nothin")});
当我在浏览器中打开我的虚拟主机时,它会提醒我:buf。没什么 并且在控制台日志中出现此错误:
- 拒绝加载 chrome-extension://myExtensionId/manifest.json。资源必须列在 web_accessible_resources 清单键中才能被扩展程序之外的页面加载
如果我单击我创建的扩展程序,它会发出警报 boom 并且我没有收到任何错误,这意味着它在扩展程序中检测到我的扩展程序,但在我的虚拟主机中它没有。
因此,可以检测扩展中是否存在扩展,但是可以检测网页中是否存在扩展?
【问题讨论】:
-
错误信息清楚地解释了the problem is 的含义。但我建议使用@Daniel 回答中的方法
-
即使我在
manifest.json中执行此操作,此错误消息仍然存在:"web_accessible_resources": [ "/*" ]。 -
我不认为这是一个有效的 glob。试试
[ "*.json", "scripts/*.js" ]或类似的 -
终于成功了!
manifest.json没有配置好!在此处检查配置:manifest
标签: javascript google-chrome-extension