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

Auto reload proxy.pac file in chrome browser

我正在使用 proxy.pac 文件将我的流量路由到 chrome browser.Whenever 我更改 proxy.pac 文件 我需要手动单击此处的 reapply settings 按钮chrome://net-internals/#proxy 让它工作。我的 proxy.pac 文件会经常更改,因此很难每隔 time.Is 手动应用更改,有一种方法可以像任何附加组件或脚本一样自动执行此过程。

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

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

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 文件。

我刚刚根据 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});
        }       
});