Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AJAX и IE7, Не передается созданный объект xmlHttp 
V
    Опции темы
Rigel
Дата 24.2.2009, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.7.2007
Где: Москва

Репутация: нет
Всего: нет



Имеется код, который не выполняется в MSIE 7 из Vista. На MSIE 6 из XP, к моему крайнему удивлению, он работает. Опытным путем установлено, что в функции update_clist не определен xmlHttp.readyState (как и весь объект xmlHttp, насколько я понял). Отключение флага внутренней поддержки XMLHTTP в браузере не дало ничего.

Код

function get_http(){
var xmlHttp = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5) try {
    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) { try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e2) {
        xmlHttp = false;
    }
}
@end @*/

if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
    xmlHttp = new XMLHttpRequest();
}
    return xmlHttp;
}

function update_clist() {
    var xmlHttp=this;
    if (xmlHttp.readyState == 4) {
//alert(xmlHttp.readyState); //Вот здесь xmlHttp неопределен
        var resp = xmlHttp.responseXML;
    UserLst = resp.getElementsByTagName('u');
    var contlist = '';
        for (var i = 0; i < UserLst.length; i++){
            ctag = resp.getElementsByTagName('u')[i].childNodes[0].nodeValue;
            iattr = resp.getElementsByTagName('u')[i].getAttribute('id');
            sattr = resp.getElementsByTagName('u')[i].getAttribute('s');
            if(sattr == 3){imag = "<img src=\"/img/0/convert_z.png\" height=\"15\" width=\"14\"/>";}
            if(sattr == 2){imag = "<img src=\"/img/0/convert_n.png\" height=\"15\" width=\"14\"/>";}
            if(sattr == 1){imag = "<img src=\"/img/0/convert_zb.png\" height=\"15\" width=\"14\"/>";}
            if(sattr == 0){imag = "<img src=\"/img/0/convert_nb.png\" height=\"15\" width=\"14\"/>";}
            var hrf = "<a href=\"/user/"+iattr+"\">";

            contlist = contlist + hrf + imag + ' '+ ctag + '</a><br/>';
        }
    document.getElementById("clist").innerHTML = contlist;
    }             
}

function check_contact() {
    var url = "/cgi/cont_list";
    var xmlHttp = get_http();
    xmlHttp.open("GET", url, true);
    xmlHttp.onreadystatechange = update_clist;
    xmlHttp.send( null );
    readumess = setTimeout('check_contact()', tout);
    pause = 0;
}


Кто-нибудь знает, где грабли?

Виноват, ошибся - в 6 IE тоже не работает - то есть, решение общее для любого MSIE. Пожалуйста, подскажите!

Это сообщение отредактировал(а) Rigel - 26.2.2009, 15:01
--------------------
С уважением. Rigel. http://www.smoliy.ru
PM MAIL WWW ICQ   Вверх
Rigel
Дата 26.2.2009, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.7.2007
Где: Москва

Репутация: нет
Всего: нет



Оказывается, нужно делать так:
Код

    xmlHttp.onreadystatechange = function(){update_clist(xmlHttp);};

--------------------
С уважением. Rigel. http://www.smoliy.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.