探测扩展时GET net :: ERR_FAILED错误

时间:2016-05-29 19:54:18

标签: javascript google-chrome google-chrome-extension

有一个Chrome扩展程序,我想通过XMLHttpRequest从中获取PNG文件。如果启用了扩展程序,我想写“加载”#39;到控制台,如果扩展程序被禁用,我想写错误'到控制台。

它工作正常,但如果禁用了扩展程序,Chrome会在控制台中写入一个我不想出现的错误:

enter image description here

enter image description here

如何从控制台中删除此错误?

(我已经尝试了window.onerror但它没有工作)

代码:

var loadHref = function(href) {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onload = function(){console.log('load')};
    xmlhttp.onerror = function() {console.log('error');};
    xmlhttp.open('GET', href);
    xmlhttp.send();
}
loadHref('chrome-extension://77672b238520494cba8855547dd00ba8/img/icon24.png');

2 个答案:

答案 0 :(得分:2)

基本上,你不能解决这些错误,因为它们不是JS错误,而是网络错误。

假设您的目标是检测特定扩展名是否存在:

  1. 假设您需要在特定域以及由您控制的特定扩展程序。

    在这种情况下,最佳方法是externally_connectable communication。这是一个sample

  2. 假设您需要在事先未知的非特定域名中,但您可以控制扩展名。

    在这种情况下,可以注入一个Content Script(可能带有"run_at": "document_start")并在文档中添加一些信号表明存在扩展名。例如,设置变量的injecting a page-level script

  3. 假设您无法控制扩展程序。

    嗯,在那种情况下,你被搞砸了。如果扩展不会以上述方式合作,探测其网络可访问资源(如果有的话)是检测它的唯一方法,而不是在DOM中观察特定内容脚本活动(如果有的话)。

答案 1 :(得分:1)

实际上,error when chrome cast extension is not installed已经存在google-cast-sdk存在的问题,并且基于该问题跟踪器,这还没有完全解决。但是,有一个comments

的解决方法
  

解决方法是安装Google Cast扩展程序或禁用网络警告(请注意您可能会遗漏一些可能引起您注意的警告),因此您不会看到这些额外的日志。

并且,您也可以尝试使用此SO帖子中提供的可能解决方案 - Google chrome cast sender error if chrome cast extension is not installed or using incognito,谁知道,这可能有所帮助。 :)