我想知道您是否可以给我一个有效的代码,以便当有人从英国加载网站时,它将用户重定向到/ UK /,然后如果他们从美国加载该网站,则转到/ US /,如果他们来自欧盟的任何地方(不包括英国到/ EU /

我已经试过了这段代码,只是说123。

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>removed</title>

<script type='text/javascript'>//<![CDATA[
window.onload=function(){

    if(navigator.geolocation)
    {
    navigator.geolocation.getCurrentPosition(showPosition,showError);
    }
    else
    {
    alert("Geolocation is not supported by this browser.");
    }

    function showError(error)
      {
      switch(error.code)
        {
        case error.PERMISSION_DENIED:
          alert("User denied the request for Geolocation.");
          break;
        case error.POSITION_UNAVAILABLE:
          alert("Location information is unavailable.");
          break;
        case error.TIMEOUT:
          alert("The request to get user location timed out.");
          break;
        case error.UNKNOWN_ERROR:
          alert("An unknown error occurred.");
          break;
        }
      }

 function showPosition(pos)
  {

   if (pos.coords.longitude >= 45.775534 && pos.coords.longitude <= 45.775562 && pos.coords.latitude <= 15.994809 && pos.coords.latitude >= 15.994792)
        {
            alert("987");
        //window.location = 'USD/';
        }
        else{
            alert("123");
           // window.location = 'GBP/';
        }
  }
}//]]>

</script>
</head>
<body>
</body>
</html>

最佳答案

通常,这样的重定向是通过查询地理位置数据库在服务器端执行的。如果用户允许页面查询位置,则JavaScript方法可能适用于现代浏览器。

无论如何,请仔细查看纬度和经度的限制条件。正如我所看到的,它应该放在45.775534-45.775562 lat 15.994809-15.994792很小的盒子中。这是克罗地亚萨格勒布的一个小广场。因此,除非您的设备使用非常精确的地理位置,并且您实际上位于该位置,否则几乎不可能出现987弹出窗口。如果要检查用户是否在美国,则应使用更复杂的匹配项(考虑到阿拉斯加和夏威夷)。

09-26 13:40