如何从javascript(使用插件)更改代理?

时间:2011-10-23 10:21:47

标签: javascript firefox

如何从javascript(使用插件)更改Firefox代理设置?

3 个答案:

答案 0 :(得分:2)

现在(2013年),使用最新的SDK(1.14)非常简单,只需几行代码就可以实现:

const {Cu} = require("chrome");
Cu.import("resource://gre/modules/Services.jsm");
Services.prefs.setCharPref("network.proxy.http", proxy_ip);
Services.prefs.setIntPref("network.proxy.http_port", proxy_port);
Services.prefs.setIntPref("network.proxy.type", 1);

如果需要,您还可以设置ftp和ssl代理IP和端口。 proxy_ip和proxy_port变量包含其名称描述的内容。

该代码段是从新的proxy add-on for Firefox复制而来的,但使用最新SDK的任何扩展程序都会这样做。

答案 1 :(得分:1)

简单

netscape.security.PrivilegeManager
  .enablePrivilege("UniversalBrowserAccess UniversalXPConnect");
  var prefs = Components.classes["@mozilla.org/preferences-service;1"]
              .getService(Components.interfaces.nsIPrefBranch);

     prefs.setIntPref("network.proxy.type", 1);


 prefs.setCharPref("network.proxy.http", "5.5.5.5");
 prefs.setIntPref("network.proxy.http_port", "80");

prefs.setCharPref("javascript.enabled", "true");

答案 2 :(得分:0)

正如其他人所说:FoxyProxy从用户角度执行此角色。如果你想从你自己的扩展中为其他目的而使用nsIPrefService来编辑配置当然是可能的 - 但是不要以这种方式破坏用户体验(例如,无意中覆盖另一个扩展)是非常棘手的您正在编辑浏览器的全局状态。