如何从javascript(使用插件)更改Firefox代理设置?
答案 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来编辑配置当然是可能的 - 但是不要以这种方式破坏用户体验(例如,无意中覆盖另一个扩展)是非常棘手的您正在编辑浏览器的全局状态。