Javascript 如何使用xpcom更改firefox代理设置

Javascript 如何使用xpcom更改firefox代理设置,javascript,firefox-addon,xpcom,Javascript,Firefox Addon,Xpcom,我有一个在本地主机(127.0.0.1)上运行的代理服务器,我已经厌倦了必须训练用户如何在firefox中切换代理以绕过被阻止的网站。 我决定写一个插件。我想知道如何使用xpcom告诉firefox使用某个代理,例如 对于http,使用127.0.0.1端口8080。 互联网上的例子很少 谢谢代理设置存储在中。您可能需要更改network.proxy.type,network.proxy.http和network.proxy.http_-port()。像这样: Components.utils.

我有一个在本地主机(127.0.0.1)上运行的代理服务器,我已经厌倦了必须训练用户如何在firefox中切换代理以绕过被阻止的网站。
我决定写一个插件。我想知道如何使用xpcom告诉firefox使用某个代理,例如
对于http,使用127.0.0.1端口8080。
互联网上的例子很少


谢谢

代理设置存储在中。您可能需要更改
network.proxy.type
network.proxy.http
network.proxy.http_-port
()。像这样:

Components.utils.import(“resource://gre/modules/Services.jsm");
Services.prefs.setIntPref(“network.proxy.type”,1);
Services.prefs.setCharPref(“network.proxy.http”,“127.0.0.1”);
Services.prefs.setIntPref(“network.proxy.http_port”,8080);
如果需要为每个URL动态确定代理,可以使用功能提供程序-它允许您定义“代理筛选器”。像这样的方法应该会奏效:

var-pps=Components.classes[“@mozilla.org/network/protocol-proxy-service;1”]
.getService(组件.接口.nsIProtocolProxyService);
//提前创建代理信息对象,以避免每次都创建代理信息对象
var myProxyInfo=pps.newProxyInfo(“http”,“127.0.0.1”,8080,0,-1,0);
变量过滤器={
applyFilter:函数(pps、uri、代理)
{
如果(uri.spec==…)
返回myProxyInfo;
其他的
返回代理;
}
};
pps.注册过滤器(过滤器,1000);

谢谢。我在什么地方见过这个。但它有一个问题,改变全球代理,但我更喜欢它这样做page@DrDeo:一般来说,把这类事情考虑进去是个好主意我认为唯一的方法是在页面开始加载时更改全局代理设置,因为我记得加载组没有代理设置。但是,如果代理选择逻辑是固定的,那么您可以将其放入PAC文件中。@DrDeo:仔细观察,显然我错了-有一种方法可以为每个URL动态设置代理。编辑了我的答案。