在Chrome浏览器中自动重新加载proxy.pac文件

时间:2016-10-02 08:47:38

标签: google-chrome-extension proxy proxy.pac

我正在使用proxy.pac文件在Chrome浏览器中路由我的流量。每当我更改我的proxy.pac文件时,我需要手动点击reapply settings按钮chrome://net-internals/#proxy以使其正常工作。我的proxy.pac文件会经常更改,因此很难每次都手动应用更改。有没有办法像任何添加或脚本一样自动执行此过程。

Foxyproxy add on有一个选项可以在Firefox中自动重新加载pac文件,但是在chrome中没有提供该选项。

2 个答案:

答案 0 :(得分:2)

我刚刚根据Pac-Script代理设置修改了代码。这意味着它只有在你有代理模式pacscript时才有效。

document.addEventListener("DOMContentLoaded", function () {
   var errorHandler = new ProxyErrorHandler();
   var persistedSettings = ProxyFormController.getPersistedSettings();     

        if (persistedSettings !== null) {           
            if (persistedSettings.regular.mode == 'pac_script') {
               // Do something every 5 seconds                
               setInterval(function() {
                  // call URL with random string to avoid URL cache
                  persistedSettings.regular.pacScript.url = 'myfile/path/for/fun.pac?nocache'+Math.floor((Math.random() * 1000) + 1);
                  chrome.proxy.settings.set({'value': persistedSettings.regular});
             }, 5000);
            }               
            chrome.proxy.settings.set({'value': persistedSettings.regular});
        }       
});

答案 1 :(得分:1)

下载此示例chrome扩展程序https://developer.chrome.com/extensions/examples/extensions/proxy_configuration.zip并将background.js替换为以下脚本。在开发者模式下加载此扩展程序。

document.addEventListener("DOMContentLoaded", function () {
  var errorHandler = new ProxyErrorHandler();
   var persistedSettings = ProxyFormController.getPersistedSettings();   

    setInterval(function() {
         // Do something every 5 seconds   
        if (persistedSettings !== null) {
            chrome.proxy.settings.set({'value': 'myfile/path/for/fun.pac'});
        }
    }, 5000);

});

这将每5秒重新加载一次PAC文件。