我正在寻找一种方法来根据国家/地区更改锚标记的网址。我正在使用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>
答案 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)
}
});