0

我设法让访问该网站的人所在的国家/地区:

<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"

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

4

3 回答 3

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会重定向到用户的相应国家/地区,因此我实际上不会一开始就触摸这些链接。

于 2013-03-25T23:51:44.767 回答
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'            

         }
于 2013-03-25T23:51:53.283 回答
0

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

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

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

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

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

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

一个简单的例子

于 2013-03-25T23:52:06.623 回答