我想检测用户浏览器上是否安装了某个扩展。
我尝试了以下代码:
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://' + addon_id_youre_after, function() {alert('boom!');});
如果浏览器已安装扩展程序,则会出现以下错误:
如果没有安装扩展程序,则会出现不同的错误。资源必须在web_accessible_resources清单键中列出,以便由扩展程序外的页面加载
GET chrome-extension://invalid net::ERR_FAILED
这是我得到的错误的图像: 我试图捕获错误(fiddle)。GET chrome-extension://addon_id_youre_after/manifest.json net::ERR_FAILED
try {
var s = document.createElement('script');
//s.onerror = window.setTimeout(function() {throw new Error()}, 0);
s.onload = function(){alert("installed")};
document.body.appendChild(s);
s.src = 'chrome-extension://gcbommkclmclpchllfjekcdonpmejbdp/manifest.json';
} catch (e) {
debugger;
alert(e);
}
window.onerror = function (errorMsg, url, lineNumber, column, errorObj) {
alert('Error: ' + errorMsg + ' Script: ' + url + ' Line: ' + lineNumber
+ ' Column: ' + column + ' StackTrace: ' + errorObj);
}
到目前为止,我还无法捕捉到错误...
非常感谢您提供的任何帮助。