2014-06-13 166 views
0

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

我在考虑点击更改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> 

回答

0

我会更换网址上的页面加载,使人们仍然可以在新选项卡中点击打开。点击链接上的事件总是会影响我。

由于您想要减少对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) 
    } 
});