1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/browser-plug-chrome-website-ip

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
background.js 2.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
WROIATE Отправлено 09.12.2020 11:08 fa0c522
// Extract domain name (DN) from URL
function url2dn(url) {
var tmpa = document.createElement('a');
tmpa.href = url;
return tmpa.host;
}
// maintain a dict of IPs, indexed by DN
var ips = {};
var dds = {};
chrome.webRequest.onCompleted.addListener(
function (d) {
dds[url2dn(d.url)] = d;
ips[url2dn(d.url)] = d.ip;
return;
}, {
urls: [],
types: []
}, []
);
if (localStorage["ext_enabled"] === undefined)
localStorage.setItem("ext_enabled", 1);
// Listeners
chrome.extension.onMessage.addListener(
function (request, sender, callback) {
//console.info(request.op);
switch (request.op) {
case "enable":
localStorage.setItem("ext_enabled", 1);
break;
case "disable":
localStorage.setItem("ext_enabled", 0);
break;
case "showTip":
callback({
ipaddress: localStorage["ipaddress"],
ext_enabled: localStorage["ext_enabled"]
});
break;
case "getIp":
var dn = url2dn(sender.tab.url);
var iIp = ips[dn];
callback({
ip: iIp,
dds: dds,
});
break;
case "getAddr":
var ipaddress = "";
$.ajax({
url: "https://clientapi.ipip.net/browser/chrome?ip=" + request.ip,
timeout: 2000,
type: 'get',
data: {},
dataType: 'json',
success: function (info) {
if (info.ret == 0) {
if (info.data.city != "") { ipaddress = info.data.country + '-' + info.data.city; }
else {
ipaddress = info.data.country
}
localStorage.setItem("ipaddress", ipaddress);
} else {
localStorage.setItem("ipaddress", '');
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
localStorage.setItem("ipaddress", '');
},
complete: function (XMLHttpRequest, status) {
if (status == 'timeout') {
//ajaxTimeoutTest.abort();
localStorage.setItem("ipaddress", '');
}
}
});
callback({
ip: request.ip,
ipaddress: localStorage["ipaddress"],
ext_enabled: localStorage["ext_enabled"]
});
break;
default:
break;
}
}
);
chrome.browserAction.onClicked.addListener(function (t) {
e = localStorage["ext_enabled"];
if (e == 1) {
iconDetails = {
path: "/images/icon19_disable.png"
};
} else {
iconDetails = {
path: "/images/icon19.png"
};
}
chrome.browserAction.setIcon(iconDetails, null);
localStorage["ext_enabled"] = 1 - e;
});

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/browser-plug-chrome-website-ip.git
git@api.gitlife.ru:oschina-mirror/browser-plug-chrome-website-ip.git
oschina-mirror
browser-plug-chrome-website-ip
browser-plug-chrome-website-ip
master