Вывод контента в зависимости от страны

700
07 февраля 2017, 22:43

Здравствуйте, стоит такая задача.. в контактах для посетителей страны России показывать один блок контактов, для посетителей с Украины другой, для всех остальных два блока одновременно

Напал на просторах интернета на 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"...

А может кто-то предложит и какой-то другой вариант решения?

Answer 1

так а почему вы пишете

switch (country) {

если должны писать

switch (country.iso_code) {

?

Answer 2

просто проверьте, Ukraine - uk. http://www.localeplanet.com/icu/uk-UA/ ISO 639

Answer 3

Попробуйте сделать так:

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) {
      // вывод ошибок
    });    
}
READ ALSO
Не работает функция console.log

Не работает функция console.log

Нативная функция consolelog ничего не выводит в firebug окне

1786
Не поддаётся regexp

Не поддаётся regexp

Суть в чем, делаю расширение для хром, ему нужно обработать адрес открытой страницыСтруктура сайта такая: http://site

610
Проблема с закладками Яндекс

Проблема с закладками Яндекс

У меня возникла проблемаЯ поменял домен, но все ссылки нормально работают, кроме закладок яндекс

666
Замена distinguished.name

Замена distinguished.name

Добрый день! После прогона и нахождения определенных контактов,нужно изменить их distinguishename на SpecialName

624