2015-03-18 72 views
0

我们正在使用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> 
+1

我不认为这是可能的,防止页面加载的唯一办法就是'window.stop()',但它取消了负载所以只刷新恢复它。 这些东西通常由入口页面处理,然后你可以记住用户在cookie中选择未来vistis – kidwon 2015-03-18 22:55:35

回答

1

不确定你的意思是你想阻止页面加载,但也许隐藏页面会做到这一点?使用CSS是这样的:

body { 
    display: none; 
} 
+0

谢谢@KJ Price。我会重申这个问题。 – Alex 2015-03-18 22:51:12

+1

理想情况下,您可以将此应用于JavaScript,否则任何人打js禁用的网站都不会看到任何内容,无论他们是否会重定向 – 2015-03-18 22:51:16