如何从chrome扩展获取系统代理设置?

问题描述 投票:1回答:1

我需要为我的chrome扩展程序进行自定义代理设置,以便特定域的流量通过代理服务器,而所有其他(用户)流量通常使用默认系统设置。根据chrome API文档,唯一的方法是使用pac_script(如果我错了,请纠正我)。因此,代码将是这样的:

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'});

但是,pac_script没有使用系统代理设置路由流量的选项(仅“DIRECT”,这意味着它将跳过系统设置)。我想使用chrome.proxy.settings.get获取系统代理设置,但是这个函数返回一个没有有用信息的mode = system对象。

有谁知道如何从扩展程序获取系统代理设置?或者有处理原始问题的建议?

google-chrome-extension proxy
1个回答
0
投票

你可以得到它

chrome.proxy.settings.get(
      {'incognito': false},
      function(config) {
          console.log(JSON.stringify(config));
      });

它应该显示这样的事情:

{
  "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
     }
    }
}

阅读文档更详细的https://developer.chrome.com/extensions/proxy

© www.soinside.com 2019 - 2024. All rights reserved.