根据位置更改链接域扩展名

时间:2013-03-25 23:44:45

标签: jquery

我设法访问了访问该网站的人的国家:

<script type='text/javascript'>
$(window).load(function(){
$.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {
  $("#hello").html(
        'Country: ' + data.address.country);
});
});
</script>

<p id="hello"></p>

现在我正在努力的是我有一个基本的链接

<a href="http://www.google.com" id="global">Google</a>

我希望根据位置更改网址的扩展名,例如

if data.address.country = Australia change "www.google.com" to "www.google.com.au"
or if data.address.country = New Zealand change "www.google.com" to "www.google.co.nz"
or if data.address.country = Any thing else leave it as is "www.google.com"

我知道这不是真正的代码,但希望它足够清楚,你知道我来自哪里,可能使代码通用,所以我可以在将来添加其他位置。

3 个答案:

答案 0 :(得分:0)

您可以进行映射:

var country_map = {
    'Australia': 'google.com.au',
    'New Zealand': 'google.co.nz'
    'Russia': 'google.ru'
};

var country = data.address.country;

if (country in country_map) {
    link.href = link.href.replace('google.com', country_map[country];
}

Google.com redirects to a user's appropriate country,所以我实际上不会触及开头的链接。

答案 1 :(得分:0)

尝试动态更改href属性

    $.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {
      $("#hello").html(
         'Country: ' + data.address.country);
      });
      $('#global').attr('href', map[data.address.country])
    });

然后在代码中的某处写一个说

的地图
   var map = {
          'Australia': 'google.au',
          'India' : 'google.in'            

         }

答案 2 :(得分:0)

首先,您需要将每个国家/地区映射到各自的网址。您应该使用AJAX调用返回的确切值作为对象的键。

var country = data.address.country;
var urls = {
  'Australia':'www.google.com.au',
  'New Zealand':'www.google.co.nz',
  ...
}

现在为不匹配的国家/地区设置默认值,如果匹配的国家/地区,则将Google网址替换为匹配的值。

var googleUrl = 'www.google.com';
if (urls[country]){
  googleUrl = urls[country];
}

最后,一旦选择了适当的URL,就可以使用jQuery的href函数更改prop()属性。

$("#global").prop('href',googleUrl);

A quick example