因为图床用的腾讯云cos,挂的cdn不支持外网访问(我也没打算支持),所以使用外网小伙伴无法访问任何图片,很多人以为是本站的图床挂了,然而可能是因为用户自己是用的外网。那么最好的方式就是告诉用户,你用的不是国内网进行访问。

如果你不需要外网访问你的网站,也可以利用这个js将网页跳转到其他页面或者其他操作。

效果预览

提示文本

实现方式

实现方式特别简单,首先引入判断国家ip的api:

1
<script src="//geoip-js.com/js/apis/geoip2/v2.1/geoip2.js" type="text/javascript"></script>

然后再执行判断

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var foreignTips = (function () {
var onSuccess = function (geoipResponse) {
if (!geoipResponse.country.iso_code) {
return;
}
var code = geoipResponse.country.iso_code.toLowerCase();
if (code != 'cn'){
btf.snackbarShow('使用国外网络访问将无法访问文章图片,敬请谅解。If you use foreign network access, you will not be able to access articles and pictures.')
}
};
var onError = function (error) {
};
return function () {
geoip2.country(onSuccess, onError);
};
}());
foreignTips();

后面的js代码引入进网页在前面js之后即可。

本代码执行的是butterfly的snackbar的呼出函数,也可以更改为你需要执行的内容。

参考资料

最新多种方式, 判断客户端IP是国内还是国外?