Изменить URL с помощью JavaScript в зависимости от страны геоипа

Я ищу способ изменить URL тега привязки в зависимости от страны. Я использую сервис maxmind geoip2 JavaScript для определения страны.

Я думал об изменении URL на клике, поэтому я не делал ненужных звонков 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 ответ

Я бы заменил 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)
  }
});
Другие вопросы по тегам