Здравствуйте, стоит такая задача.. в контактах для посетителей страны России показывать один блок контактов, для посетителей с Украины другой, для всех остальных два блока одновременно
Напал на просторах интернета на http://dev.maxmind.com/geoip/geoip2/javascript/
И написал такой вот код:
<head>
<meta charset="UTF-8">
<title>Test GeoIP</title>
<script src="http://js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js" type="text/javascript"></script>
<style type="text/css">
.geoip { display: none; border: 1px solid #036; padding: 10px; margin: 10px; }
p { font-size: 0.8em; text-align: center; }
</style>
<script type="text/javascript">
function init() {
var id, country = geoip2.country();
switch (country) {
case 'RU':
id = 'country-ru';
break;
case 'UA':
id = 'country-ua';
break;
default:
id = 'country-other';
}
document.getElementById(id).style.display = 'block';
}
</script>
</head>
<body onload="init();">
<div class="geoip" id="country-ru">
<h1>Блок для пользователей из России</h1>
</div>
<div class="geoip" id="country-ua">
<h1>Блок для пользователей из Украины</h1>
</div>
<div class="geoip" id="country-other">
<h1>Блок для пользователей из неопределенной страны</h1>
</div>
</body>
Но вот что-то никак не получается полноценно выполнить.. получается я не могу вытащить сам "iso_code"...
А может кто-то предложит и какой-то другой вариант решения?
так а почему вы пишете
switch (country) {
если должны писать
switch (country.iso_code) {
?
просто проверьте, Ukraine - uk. http://www.localeplanet.com/icu/uk-UA/ ISO 639
Попробуйте сделать так:
function init() {
geoip2.country(function(result) {
var id;
switch (result.country.iso_code) {
case 'RU':
id = 'country-ru';
break;
case 'UA':
id = 'country-ua';
break;
default:
id = 'country-other';
}
document.getElementById(id).style.display = 'block';
}, function(error) {
// вывод ошибок
});
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей