2013-06-20 2 views
-5

Как новичок в JS, я очень рад получить скрипт с API MaxMind, работающий в браузерах webkit, однако IE не хотел появляться на вечеринке (и я думал, что это был только CSS/HTML вопросы, которые мучают IE)JavaScript и JQuery работают некорректно в IE

страница, что я тестирование можно найти здесь - http://www.ontrackdatarecovery.es/images/phone/130612-es-dynamic-phone-geoip.html

Как вы должны быть в состоянии видеть, он работает в Chrome и т.д., но не в IE (8). Любая помощь очень ценится!

Благодаря

+0

что делает консоль сказать в IE8? –

+3

Что вы подразумеваете под «работами» или «не работает»? –

+0

И почему бы вам не разместить здесь соответствующий код? –

ответ

0

Console говорит 'return' statement outside of function. Попробуйте изменить что return заявление break

default: 
    regionPhone = '<p>This is an IP from ' + userCountry + '</p>'; 
    break; 
+0

Попробуйте оператор '+' для конкатенации строк, а не побитового '&' –

+0

@EliasVanOotegem. –

+0

Спасибо @MarkDee, теперь он «работает» :) –

0

В IE, переменная regionPhone не определена. По-видимому, это связано с вашим заявлением return (IE говорит: return statement outside of function), как отмечает Марк.

Как обернуть вашу логику в $(function() {}), которая будет следить за тем, чтобы логика запускалась при загрузке DOM. Кроме того, он избегает наличия глобальных переменных.

Что-то вроде:

$(function() { 
    var userRegion = geoip_region(); 
    var userCountry = geoip_country_code(); 
    var regionPhone; 

    switch (userCountry) { 
    case "GB": 
    var region = {}; 
     // and so on 

    $(".Regional-Phone").html(regionPhone); 
    document.write('<p>Country: ' + userCountry + '<br>Region: ' + userRegion + '<br>City: ' + geoip_city() + '</p>'); 

});