有一个特定的 Chrome 扩展程序,我想通过 XMLHttpRequest
从中获取一个 PNG 文件。如果启用了扩展,我想将“加载”写入控制台,如果禁用了扩展,我想将“错误”写入控制台。
它工作正常,但如果扩展程序被禁用,Chrome 会在控制台中写入一条我不希望出现的错误:
如何从控制台中删除此错误?
(我试过 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');
最佳答案
基本上,您无法消除这些错误,因为它们不是 JS 错误而是网络错误。
假设您的目标是检测是否存在特定扩展:
假设您在特定域和由您控制的特定扩展中需要它。
在这种情况下,最佳方法是
externally_connectable
communication .这是一个 sample .假设您在事先不知道的非特定域中需要它,但您可以控制扩展名。
在这种情况下,一个 Content Script可以注入(inject)(可能使用
"run_at": "document_start"
)并在文档中添加一些东西来表示扩展的存在。例如,injecting a page-level script设置一个变量。假设您不控制扩展程序。
好吧,那样的话你就完蛋了。如果一个扩展不会以上述方式合作,探测它的网络可访问资源(如果有的话!)是检测它的唯一方法,而不是监视 DOM 中的特定内容脚本事件(同样,如果有的话)。
关于javascript - 探测扩展时出现 GET net::ERR_FAILED 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37514297/