使用基于geoip国家/地区的JavaScript更改网址

时间:2014-06-13 15:03:01

标签: javascript geoip geotargetting

我正在寻找一种方法来根据国家/地区更改锚标记的网址。我正在使用maxmind的geoip2 JavaScript服务来检测国家。

我正在考虑在点击时更改网址,因此我没有对maxmind进行不必要的调用。这是一个好主意还是有更好的方法呢?

下面是我到目前为止所获得的代码,但它无效:

var theAnchor = document.getElementsByClassName('geotarget');

theAnchor.onclick = function () {
  var country = geoipResponse.country.iso_code;
  var linkUK = "<?php the_field('link_uk'); ?>";
  var linknUS = "<?php the_field('link_us'); ?>";
  if ( country == "GB" ){
    window.open(linkUK);
  } else {
   window.open(linkUS);
  }
};

HTML:

<a href="" class="geotarget">
   <img class="img-responsive" src="<?php the_field('image'); ?>" alt="" />
</a>

1 个答案:

答案 0 :(得分:0)

我会在页面加载时替换URL,以便人们仍然可以在新标签页中单击以打开。单击链接上的事件总是让我感到烦恼

由于您希望减少对geoip2服务的调用量,您可以点击一次,然后将结果缓存到服务器上的会话中。

这样的事情:

$(function () {
  var country = "<?php COUNTRY_CODE ?>";
  if(!country)
  {
    country = geoipResponse.country.iso_code;
  }

  var linkUK = "<?php the_field('link_uk'); ?>";
  var linknUS = "<?php the_field('link_us'); ?>";
  if ( country == "GB" ){
    $('.geotarget').attr("href", linkUK)
  } else {
    $('.geotarget').attr("href", linkUS)
  }
});