Google chrome extension 如何从chrome extension获取系统代理设置?
我需要为我的chrome扩展做一个定制的代理设置,这样到特定域的流量就可以通过代理服务器,而所有其他(用户)流量都可以正常使用默认的系统设置。根据chromeapi文档,唯一的方法是使用pac_脚本(如果我错了,请纠正我)。因此,代码如下所示:Google chrome extension 如何从chrome extension获取系统代理设置?,google-chrome-extension,proxy,Google Chrome Extension,Proxy,我需要为我的chrome扩展做一个定制的代理设置,这样到特定域的流量就可以通过代理服务器,而所有其他(用户)流量都可以正常使用默认的系统设置。根据chromeapi文档,唯一的方法是使用pac_脚本(如果我错了,请纠正我)。因此,代码如下所示: var config = { mode: "pac_script", pacScript: { data: "function FindProxyForURL(url, host) {\n" + " if (dnsDomainIs(host,
var config = {
mode: "pac_script",
pacScript: {
data: "function FindProxyForURL(url, host) {\n" +
" if (dnsDomainIs(host, 'mydomain.com') )\n" +
" return 'SOCKS5 10.0.0.1:1234';\n" +
" return 'DIRECT';\n" +
"}"
}};
chrome.proxy.settings.set({value: config, scope: 'regular'});
{
"levelOfControl":"controlled_by_this_extension",
"value":
{
"mode":"pac_script",
"pacScript": {
"data": "function FindProxyForURL(url, host) {\n
return \"PROXY 10.0.0.1:1234;\";\n}",
"mandatory": false
}
}
}
但是,pac_脚本没有使用系统代理设置路由流量的选项(仅“直接”,这意味着它将跳过系统设置)。我想使用chrome.proxy.settings.get
获取系统代理设置,但此函数返回一个对象,其中mode=system
,没有有用的信息
有人知道如何从extension获取系统代理设置吗?或者有处理原始问题的建议?您可以使用
chrome.proxy.settings.get(
{'incognito': false},
function(config) {
console.log(JSON.stringify(config));
});
它应该向您展示如下内容:
var config = {
mode: "pac_script",
pacScript: {
data: "function FindProxyForURL(url, host) {\n" +
" if (dnsDomainIs(host, 'mydomain.com') )\n" +
" return 'SOCKS5 10.0.0.1:1234';\n" +
" return 'DIRECT';\n" +
"}"
}};
chrome.proxy.settings.set({value: config, scope: 'regular'});
{
"levelOfControl":"controlled_by_this_extension",
"value":
{
"mode":"pac_script",
"pacScript": {
"data": "function FindProxyForURL(url, host) {\n
return \"PROXY 10.0.0.1:1234;\";\n}",
"mandatory": false
}
}
}
阅读文档了解更多详细信息
根据我发现的有关您的问题的相关信息,他们还使用chrome extension中的代理设置,这是chrome extension的官方API。如果您发现pac_脚本没有路由流量的选项,那么这意味着它不支持路由流量。我建议你问这个问题,这样Chrome扩展方面的专家就可以帮助你解决这个问题。