12 Star 27 Fork 4

browser-plug / chrome-website-ip

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
background.js 2.35 KB
一键复制 编辑 原始数据 按行查看 历史
WROIATE 提交于 2020-12-09 16:08 . 添加城市空值检查
// 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;
});
JavaScript
1
https://gitee.com/browser-plug/chrome-website-ip.git
git@gitee.com:browser-plug/chrome-website-ip.git
browser-plug
chrome-website-ip
chrome-website-ip
master

搜索帮助