我正在尝试构建一个chrome扩展程序,可以在启动浏览器时更改代理设置。我已经按照Chrome扩展程序文档但仍然没有成功。
的manifest.json
{
"manifest_version": 2,
"name": "Proxy",
"description": "Proxy on 127.0.0.1:8080",
"version": "1.1",
"background": {
"scripts":["background.js"]
},
"browser_action": {
"default_icon": "icon.png",
"popup":"popup.html"
},
"permissions": [
"tabs",
"http://*/*",
"https://*/*",
"notifications",
"contextMenus",
"history",
"background",
"proxy"
],
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
}
backround.js
chrome.windows.onCreated.addListener(function() {
var config = {
mode: "fixed_servers",
rules: {
proxyForHttp: {
scheme: "http",
host: "127.0.0.1",
port:"8080"
},
bypassList: ["foobar.com"]
}
};
chrome.proxy.settings.set(
{value: config, scope: 'regular'},
function() {});
});
以上代码不起作用......
答案 0 :(得分:2)
我从昨天起就一直在尝试一切,终于找到了我的问题;我不得不改变
proxyForHttp:
- > singleProxy:
和
port:'8080'
- > port: 8080
答案 1 :(得分:1)
背景页面应该不是问题。您的代码位于窗口对象上的onCreated事件中。您不能保证在创建第一个窗口时加载扩展名。
只需移除事件并运行代码,然后在初始化扩展时运行一次。
答案 2 :(得分:1)
将行port:"8080"
更改为port:8080
,它会正常工作。
中查看有效设置
如果通过PAC脚本,在脚本代码错误,chrome.proxy.settings.set
处理程序仍然运行,即使代理静默失败。这可以在chrome:// net-internals /#events。
This page声称PAC脚本中的console.log消息可以在net log中找到,但它似乎不起作用。
答案 3 :(得分:0)
我认为你不能使用Background.js中的chrome.proxy API。 我用弹出式扩展程序(使用文档中的代码示例)做了同样的事情,它完美地工作......
答案 4 :(得分:0)
我尝试了你的代码,chrome给我提示端口号是整数,但不是字符串 并改变这一点 端口:" 8080" 至 端口:8080,它工作 但我没有按照你的所有代码,删除它 chrome.windows.onCreated.addListener(function(){ ,只留下此功能中的内容 3ks为您的问题!
答案 5 :(得分:0)
“启动浏览器时”
您应该使用Chrome.Runtime代替chrome.windows.onCreated。 使用chrome.runtime.onStartup,因此从无打开浏览器的情况下,将启动hrome.runtime.onStartup。
onStartup 首次安装此扩展程序的配置文件启动时触发。启动隐身配置文件后,即使此扩展程序以“拆分”隐身模式运行,也不会触发此事件。
会是这样
chrome.runtime.onStartup.addListener(function() {
var config = {
mode: "fixed_servers",
rules: {
proxyForHttp: {
scheme: "http",
host: "127.0.0.1",
port:"8080"
},
bypassList: ["foobar.com"]
}
};
chrome.proxy.settings.set(
{value: config, scope: 'regular'},
function() {});
});
您还可以在安装/更新扩展程序时使用onInstalled ...