【发布时间】:2015-03-18 22:46:56
【问题描述】:
我们使用MaxMind asynchronous geoip2 service 来确定用户所在的国家/地区。我们根据服务调用中的国家/地区代码重定向到另一个站点。但是,我们遇到了一个问题,即页面在重定向发生在一两秒内之前部分或完全加载,这会在重定向到特定国家/地区的网站之前显示我们的主要美国网站。
我们希望在异步调用返回其结果之前阻止页面显示。这是我们的代码:
<script src="//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js" type="text/javascript"></script>
<script type="text/javascript">
var onSuccess = function (location) {
var country_code = location.country.iso_code;
if(country_code == "UK")
{
<!--
window.location = "http://www.ourcompany.co.uk"
//-->
}
else if(country_code == "GB")
{
<!--
window.location = "http://www.ourcompany.co.uk"
//-->
}
// more ELSE IF statements for other countries....
};
var onError = function (error) { };
// Asynchronous call to the MaxMind server
geoip2.country(onSuccess, onError);
</script>
【问题讨论】:
-
我认为这是不可能的,防止页面加载的唯一方法是
window.stop(),但它会取消加载,所以只有刷新才能恢复它。这些事情通常由入口页面处理,然后您可以记住用户在 cookie 中的选择以供将来访问
标签: javascript asynchronous geoip maxmind