Geolocation 控制依赖于地理IP的HTML元素
我们有一个移动网页,将在不同的国家/地区提供,在每个国家/地区,我们需要能够根据访问者的IP更改以下内容:Geolocation 控制依赖于地理IP的HTML元素,geolocation,geoip,Geolocation,Geoip,我们有一个移动网页,将在不同的国家/地区提供,在每个国家/地区,我们需要能够根据访问者的IP更改以下内容: div#容器具有不同的背景图像 要隐藏的div#按钮和要显示的div#按钮-2 使用调用的JavaScript,到目前为止,我们能够识别访问者的国家,并以两字符ISO 3166-1的形式获取函数名,用于控制其他JavaScript函数。例如,我来自英国,因此当我访问页面时,JavaScript生成以下代码: function geoip_country_code() { return
- div#容器具有不同的背景图像
- 要隐藏的div#按钮和要显示的div#按钮-2
function geoip_country_code() { return 'GB'; }
在HTML中,当前有一个脚本显示:
if (geoip_country_code() == 'GB')
{
alert("Hello, you are in Great Britain");
}
我们想开发它,这样我们就可以操纵指定元素的CSS,但我们对JavaScript不太精通,所以这就是我们需要帮助的地方
这是嵌入到页面中的JavaScript:
<script src="http://j.maxmind.com/app/country.js" charset="ISO-8859-1"></script>
以下是我们想要控制的HTML元素:
<div id="container">
<div id="buttons">
<a href="#" target="blank">
<div class="button youtube"></div>
</a>
<a href="#" target="blank">
<div class="button facebook"></div>
</a>
<a href="#" target="blank">
<div class="button web"></div>
</a>
<a href="#" target="blank">
<div class="button appstore"></div>
</a>
</div>
</div>
根据返回的国家/地区代码,您应该更改样式表(css) 如果返回GB,则在哪里加载css div#容器具有不同的背景图像 隐藏div#按钮并显示div#按钮-2 反之亦然 或者,您可以简单地使用javascript实现这一点 制作一个函数,该函数: 设置容器的背景图像, 隐藏div#按钮, 显示分区按钮-2 还有另一个函数可以实现相反的功能,如: 设置容器的另一个背景图像, 显示div#按钮, 隐藏div按钮-2 现在,您可以调用相应的函数,如下所示: 如果返回'US'调用func1, 如果返回“UK”,则调用func2
var map = {
'GB': {
'background': 'img1.jpg',
'buttons': 'show',
'buttons2': 'hide'
}
};
var country = geoip_country_code();
$('#container').css('background', map[country].background);
$('#buttons')[map[country].buttons]();
$('#buttons2')[map[country].buttons2]();
这是一个使用jQuery的示例。我希望您能想到使用“映射对象”(这里只有英国,但可以根据您的意愿添加国家),然后您就可以在此基础上执行操作。我对JavaScript一点也不精通,所以我现在正在摸索一些尝试。我所做的只是测试JS是否通过以下方式工作:if(geoip_country_code()='GB'){alert(“你好,你在英国”);}太好了,非常感谢。这对理解地图的概念很有帮助。我可以用这种方式更改元素的href吗?我尝试使用以下代码:
'href':'http://www.youtube.com/watch?v=12345678'
和$(“a.youtube”).attr('href',map[country].href)
但是当它读取YouTube链接时,我得到了未捕获的语法错误或意外字符串。有什么想法吗?嗯,不,对不起,我没看到问题:/you can's make a jsfiddle?问题已经解决了,谢谢您的帮助。非常感谢!