Geolocation 控制依赖于地理IP的HTML元素

Geolocation 控制依赖于地理IP的HTML元素,geolocation,geoip,Geolocation,Geoip,我们有一个移动网页,将在不同的国家/地区提供,在每个国家/地区,我们需要能够根据访问者的IP更改以下内容: div#容器具有不同的背景图像 要隐藏的div#按钮和要显示的div#按钮-2 使用调用的JavaScript,到目前为止,我们能够识别访问者的国家,并以两字符ISO 3166-1的形式获取函数名,用于控制其他JavaScript函数。例如,我来自英国,因此当我访问页面时,JavaScript生成以下代码: function geoip_country_code() { return

我们有一个移动网页,将在不同的国家/地区提供,在每个国家/地区,我们需要能够根据访问者的IP更改以下内容:

  • div#容器具有不同的背景图像
  • 要隐藏的div#按钮和要显示的div#按钮-2
使用调用的JavaScript,到目前为止,我们能够识别访问者的国家,并以两字符ISO 3166-1的形式获取函数名,用于控制其他JavaScript函数。例如,我来自英国,因此当我访问页面时,JavaScript生成以下代码:

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?问题已经解决了,谢谢您的帮助。非常感谢!