使javascript不在特定国家/地区运行

时间:2015-05-31 07:39:45

标签: javascript

我有一个javascript重定向脚本。当该国是美国时重定向。

<script>
function determineCountry(data){
   switch(data.address.country_code){
      case "US" :
         document.location.href = "http://xxxxxxxx.biz/theme.php";
      break;
   }    
}
</script>
<script type="text/javascript" src="http://api.wipmania.com/jsonp?callback=determineCountry"></script>

现在我想要的是与此相反。比如当国家是美国时不要运行脚本。

提前致谢

2 个答案:

答案 0 :(得分:0)

如果国家/地区是&#39;请执行break。更改document.location.href default部分中的switch

function determineCountry(data){
   switch(data.address.country_code){
      case "US" :
         break;
      default:
         document.location.href = "http://xxxxxxxx.biz/theme.php";
   }    
}

答案 1 :(得分:0)

如果条件为真,则会发生切换。也就是说,在您的情况下,如果data.address.country_code == "US"案件将被解雇。

如果没有找到满足条件的情况,将使用默认情况(如果设置了一个) 如果您希望重定向几个国家/地区而不是全部,请将这些国家/地区添加到交换机,即应该重定向的国家/地区,否则您只需将其删除。

function determineCountry(data){
  switch(data.address.country_code){
  case "SE" :
     document.location.href = "http://xxxxxxxx.biz/theme.php"; 
     break;
   }    
}

determineCountry('SE'); // Will redirect.
determineCountry('US'); // Will not redirect.
determineCountry('CZ'); // Will not redirect.

您还可以添加要重定向到列表的所有国家/地区,并使用单个if执行此操作:

var codesToRedirectOn = ['SE', 'IT'];
function redirectIfCountry(code) {
  if(codesToRedirectOn.indexOf(code) !== -1) {
    // Redirect.
  }
  // Don't redirect (i.e., do nothing). 
}

需要注意的重要一点是,在客户端执行逻辑时,客户端代码始终掌握在客户端。如果客户愿意,客户可以轻松绕过重定向代码 如果您希望它更安全,重定向应该在页面加载之前在服务器端完成。