Функция устранения неполадок JavaScript в IE - PullRequest
1 голос
/ 23 марта 2010

Так что эта функция прекрасно работает в браузерах geko и webkit, но не в IE7. Я сломал свой мозг, пытаясь определить проблему. Что-нибудь для тебя выпало?

Основная предпосылка: вы передаете объект данных (в данном случае ответ от $ .getJSON jQuery), мы проверяем код ответа, устанавливаем класс уведомления, добавляем слой и показываем его пользователю. Затем выполните обратный процесс через определенный промежуток времени.

function userNotice(data){
    // change class based on error code returned
    var myClass = '';
    if(data.code == 200){ myClass='success'; }
    else if(data.code == 400){ myClass='error'; }
    else{ myClass='notice'; }
    // create message html, add to DOM, FadeIn
    var myNotice = '<div id="notice" class="ajaxMsg '+myClass+'">'+data.msg+'</div>';
    $("body").append(myNotice);
    $("#notice").fadeIn('fast');
    // fadeout and remove from DOM after delay
    var t = setTimeout(function(){ $("#notice").fadeOut('slow',function(){ $(this).remove(); }); },5000);
}

Ответы [ 2 ]

0 голосов
/ 24 марта 2010

Этот код работает в IE8 (не имеет IE7, но также пытается в режиме Compat), используя данные заглушки

var d = {code:200, msg:'lorem ipsum'}
userNotice(d);

Так что я думаю, что вы должны проверить JSON, который вы получаете с сервера. Есть ли у вас все ключи, которые вы используете? Ой! И проверьте, что-то вроде dict / json вы получаете с сервера: {key_one: 'value', key_two: 'value',}. Обратите внимание на последнюю запятую - это может быть проблемой в IE.

0 голосов
/ 23 марта 2010

Я предлагаю вам взглянуть на вывод JSON, возвращаемый сервером. Когда .getJSON() не вызывает функцию обратного вызова, как ожидалось, обычно это происходит потому, что JSON, возвращаемый сервером, где-то нарушен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...