Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript chrome扩展检测错误\u代理\u连接\u失败_Javascript_Jquery_Google Chrome Extension - Fatal编程技术网

Javascript chrome扩展检测错误\u代理\u连接\u失败

Javascript chrome扩展检测错误\u代理\u连接\u失败,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我目前正在开发一个允许用户设置代理的chrome扩展,但是我的问题是,如果代理加载失败,chrome会返回控制台中的net::ERR\u proxy\u CONNECTION\u failed,并返回一个html页面,上面写着“无法连接到代理服务器”。我一直在寻找一种方法来检测这种连接失败,这样我就可以用不同的代理恢复连接,或者只恢复没有代理的正常ip。奇怪的是我的扩展代码没有在这个页面上运行 我是否在清单文件中的“内容脚本”中丢失了一个特定的“匹配项”,这是错误页面特有的?(即使错误页面的ur

我目前正在开发一个允许用户设置代理的chrome扩展,但是我的问题是,如果代理加载失败,chrome会返回控制台中的
net::ERR\u proxy\u CONNECTION\u failed
,并返回一个html页面,上面写着“无法连接到代理服务器”。我一直在寻找一种方法来检测这种连接失败,这样我就可以用不同的代理恢复连接,或者只恢复没有代理的正常ip。奇怪的是我的扩展代码没有在这个页面上运行

我是否在清单文件中的“内容脚本”中丢失了一个特定的“匹配项”,这是错误页面特有的?(即使错误页面的url是我试图访问的页面的url,并且如果存在工作的代理/连接,扩展代码也会运行)

有没有办法抓住这个错误?任何想法都非常感谢。提前谢谢

下面是我如何设置代理的,但作为提醒,此代码起作用,问题是如果您尝试连接到不可用的代理服务器,浏览器只是关闭,并且我的扩展代码不再与页面一起运行

    var config = {
        mode: "fixed_servers",
        rules: {
            singleProxy: {
                scheme: "http",
                host: request.ip
            }
        }
    };
    chrome.proxy.settings.set({
        value: config,
        scope: 'regular'
    }, function() {});
My manifest代码:(在代理失败之前按其应运行)

当无法访问代理时,chrome会返回错误页面的图片:

如果您想支持多个代理,只需使用a并指定回退,如以下示例所示(在连接到
proxy1:80
失败时,尝试使用
proxy2:8080
,如果也失败,则Chrome将尝试直接连接,因为
“direct”

var配置={
模式:“pac_脚本”,
pacScript:{
数据:'函数FindProxyForURL(url,主机){\n'+
'如果(url.substring(0,5)=“http:”)\n'+
“return”代理proxy1:80;代理proxy2:8080;直接“;\n”+
'返回“直接”;\n'+
'}'
}
};
chrome.proxy.settings.set({
值:config,
范围:'常规'
},函数(){
});

您必须显示一些代码,并提及您正在使用的代理后端。由于目前的问题缺乏细节,很难判断出哪里出了问题。好吧,我将添加一些代码,但我的问题更多的是我如何做到这一点,而不是我做错了什么。
"content_scripts": [ {
"js": [ "jquery-1.11.1.min.js", "myscript.js" ],
"matches": ["https://*/*","http://*/*","http://*/"],
"run_at": "document_end"
},