2014-06-13 162 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) 
    } 
});