#javascript #google-chrome-extension #proxy #extension-methods
#javascript #google-chrome-extension #прокси #расширение-методы
Вопрос:
Как заставить браузеры использовать прокси-сервер для определенных доменов, таких как google.com или facebook.com
Вариант использования, если google.com или facebook.com заблокированы, и я хочу принудительно подключиться к этим сайтам через прокси-соединение, в то время как прямой доступ к Интернету для всего остального.
мой код:
backgroud.js
function FindProxyForURL(url, host) {
// use proxy for specific domains
if (shExpMatch(host, "*.google.com|*.facebook.com"))
return "PROXY yourproxy:8080";
// by default use no proxy
return "DIRECT";
}
menifest.json
{
"background": {
"scripts": [ "background.js" ]
},
"description": "This chrome extension use for proxy.",
"author": "no one",
"manifest_version": 2,
"minimum_chrome_version": "26.0",
"name": "proxy",
"permissions": [ "<all_urls>", "webRequest", "webRequestBlocking", "storage", "tabs", "proxy", "cookies", "management", "http://*/*", "https://*/*" ],
"update_url": "https://clients2.google.com/service/update2/crx",
"version": "0.10"
}
Ответ №1:
Вам нужно ввести свою FindProxyForURL()
функцию в конфигурацию PAC в виде текста, а затем передать ее через chrome.proxy.settings.set()
. Так что в вашем случае background.js
должно быть:
function FindProxyForURL(url, host) {
// use proxy for specific domains
if (shExpMatch(host, "*google.com|*facebook.com"))
return "PROXY yourproxy:8080";
// by default use no proxy
return "DIRECT";
}
config = {
mode: "pac_script",
pacScript: {}
};
config.pacScript.data = FindProxyForURL.toString();
chrome.proxy.settings.set(
{value: config, scope: "regular"},
function() {}
);