[js]naberlin_div = document.getElementById('naberlin'); function loadNaberlin(){ params = 'adnum='+nb_numads+'&pgid='+nb_pageid+ '&gid='+nb_gids+'&nb_br='+nb_br+'&nb_bg=' +nb_bg+'&nb_hd='+nb_hd+'&nb_tx='+nb_tx+'&nb_ur='+nb_ur+'&keys='+nb_keys+'&encode='+encode; if (window.XMLHttpRequest){ req = new XMLHttpRequest(); req.onreadystatechange = NaberlinProcessReqChange; req.open('POST', 'http://naberlin.ru/_7/out.php', true); req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); req.send(params); }else if (window.ActiveXObject){ req = new ActiveXObject("Msxml2.XMLHTTP"); if (req){ req.onreadystatechange = NaberlinProcessReqChange; req.open('POST', 'http://naberlin.ru/_7/out.php', true); req.send(params); }else{ req = new ActiveXObject("Microsoft.XMLHTTP"); req.onreadystatechange = NaberlinProcessReqChange; req.open('POST', 'http://naberlin.ru/_7/out.php', true); req.send(params); } } } function NaberlinProcessReqChange(){ if (req.readyState == 4) { if (req.status == 200) { //response = req.responseXML.documentElement; // final=req.responseXML.getElementsByTagName('STYLE')[0].firstChild.data; // document.write(final); // final=req.responseXML.getElementsByTagName('RESPONSE')[0].firstChild.data; // naberlin_div.innerHTML = final; alert(req.responseText); }else{ loadNaberlin(); } } } loadNaberlin(); [/js] Я повешусь. Работает везде, кроме IE6. Что делать?
Ну, люди, ну что же вы... Человек решил сам покопаться, а вы его по рукам бьете. Ximik, учись делать отладку. У тебя несколько этапов: создание объекта, формирование запроса, отлавливание прихода ответа, разбор ответа. Определи на каком этапе происходит облом.
[js] req = new ActiveXObject("Msxml2.XMLHTTP"); if (req){ ... }else{ req = new ActiveXObject("Microsoft.XMLHTTP");[/js] Вот нельзя так делать, если req = new ActiveXObject("Msxml2.XMLHTTP") не сработает, то все вывалится с ошибкой. Нужно делать через try-catch
[js]function loadNaberlin(){ req=false; try { // определить метод поддержки req=new ActiveXObject('Msxml2.XMLHTTP'); }catch (e){ try { req=new ActiveXObject('Microsoft.XMLHTTP'); // сработает в Internet Explorer }catch(e){ if(window.XMLHttpRequest){ // сработает в Mozilla и Safari req=new XMLHttpRequest(); } } } if (req){// если какой-то из вариантов поддерживается req.onreadystatechange = NaberlinProcessReqChange; // назначим обработчик событию объекта req.open('POST', 'http://naberlin.ru/_7/out.php', true); // задать параметры методу open req.send('adnum='+nb_numads+'&pgid='+nb_pageid+'&gid='+nb_gids+'&nb_br='+nb_br+'&nb_bg='+nb_bg+'&nb_hd='+nb_hd+'&nb_tx='+nb_tx+'&nb_ur='+nb_ur+'&keys='+nb_keys+'&encode='+encode); } } [/js] Так? Тоже не пашет
[js] try { var req = new ActiveXObject( "Msxml2.XMLHTTP" ); } catch( e ) { try { var req = new ActiveXObject('Microsoft.XMLHTTP'); } catch( e ) { alert( "Нифига!" ); } } alert( req ); [/js] У меня срабатывает в IE6 (выскакивает алерт с [object]). Если не работает попробуй, как сказал simpson
[js]naberlin_div = document.getElementById('naberlin'); function loadNaberlin(){ req=false; try { // определить метод поддержки req=new ActiveXObject('Msxml2.XMLHTTP'); }catch (e){ try { req=new ActiveXObject('Microsoft.XMLHTTP'); // сработает в Internet Explorer }catch(e){ if(window.XMLHttpRequest){ // сработает в Mozilla и Safari req=new XMLHttpRequest(); } } } if (req){// если какой-то из вариантов поддерживается req.onreadystatechange = NaberlinProcessReqChange; // назначим обработчик событию объекта req.open('POST', 'http://naberlin.ru/_7/out.php', true); // задать параметры методу open req.send('adnum='+nb_numads+'&pgid='+nb_pageid+'&gid='+nb_gids+'&nb_br='+nb_br+'&nb_bg='+nb_bg+'&nb_hd='+nb_hd+'&nb_tx='+nb_tx+'&nb_ur='+nb_ur+'&keys='+nb_keys+'&encode='+encode); } } function NaberlinProcessReqChange(){ if (req.readyState == 4) { if (req.status == 200) { // response = req.responseXML.documentElement; // final=req.responseXML.getElementsByTagName('STYLE')[0].firstChild.data; // document.write(final); // final=req.responseXML.getElementsByTagName('RESPONSE')[0].firstChild.data; // naberlin_div.innerHTML = final; naberlin_div.innerHTML = req.responseText; }else{ loadNaberlin(); } } } loadNaberlin();[/js] Выводятся тупо знаки вопросиков. Изменение кодировки не помогает. Во всех браузерах.
Спокойно, т.е. объект таки создался? Что за кодировка и на какие пробовал менять? Где менял, на сервере или на клиенте?