Javascript Xmlhttprequest

  • Автор темы Andrew Stephanoff
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Andrew Stephanoff

#1
создал примитивный класс для загрузки XML но он работает только в IE, в Mozilla и Opera не работает.
Может кто подскажет, почему?
Код:
var XML = function() {

var _xmlhttp;
var _xml;
var _process = function() {
 _xml = _xmlhttp.responseText;
}

if (window.XMLHttpRequest) {
 try {_xmlhttp = new XMLHttpRequest();}
 catch(e) {_xmlhttp = false;}
} else if (window.ActiveXObject) {
 try {_xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}
 catch(e) {
 	try {_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
   catch(e) {_xmlhttp = false;}
 }
} else
 _xmlhttp = false;

_xmlhttp.onreadystatechange = function() {
 if (_xmlhttp.readyState == 4 && _xmlhttp.status == 200)
   _process();
}

this.Load = function(sURL, sMethod, asyncFlag) {
 _xmlhttp.open(sMethod || "GET", sURL, asyncFlag || true);
}
this.GetText = function() {
 _process = function() {
   _xml = _xmlhttp.responseText;
 }
 _xmlhttp.send(null);
 return _xml;
}
this.GetXML = function() {
 _process = function() {
   _xml = _xmlhttp.responseXML;
 }
 _xmlhttp.send(null);
 return _xml;
}
}
вызывается так:
Код:
function Text_Click() {
 var xmlDoc = new XML();
 xmlDoc.Load("gallery.xml");
 alert(xmlDoc.GetText());
}
 

admin

Well-known member
08.08.2003
2 754
0
#2
Для: Andrew Stephanoff
ИМХО потому что в этих браузера об ActiveX не слышали разработчики
 
A

Andrew Stephanoff

#3
Код:
if (window.XMLHttpRequest) {
 try {_xmlhttp = new XMLHttpRequest();}
 catch(e) {_xmlhttp = false;}
}
вот это вызывает внутренний объект netscape и opera, так что дело не в этом (тем более, что когда работаю без класса просто процедурно, то все ок, вызывается)
 

admin

Well-known member
08.08.2003
2 754
0
#4
Для: Andrew Stephanoff
помнишь я тебе кидал ссылку на developer.apple.com - посмотри её.
там точно работает. проверено )
 
A

Andrew Stephanoff

#5
смотрел, так там просто работа с объектом XMLHttpRequest, оно у меня работает. Просто хочу сделать, чтобы через класс <_< а так оно не хочет собака :lol:
 
N

neeoon

#6
Добрый день.

У меня подгружаються даные из пхп файла через явускрип (аякс), но возникла одна проблема, даные которые приходят от сервера (хтмл код) в какойто непонятной кодировке, причем в ИЕ пропадают несколько символов в хтмл-тегах, а в мозиле, нетскейпе и фаейрфоксе знаки вопроса, все нормально понимает только опера.

Подскажите пожалуйста в чем проблема?
 

ioni

Well-known member
11.05.2006
340
0
#7
У меня подгружаються даные из пхп файла, но возникла одна проблема, даные которые приходят от сервера (хтмл код) в какойто непонятной кодировке, причем в ИЕ пропадают несколько символов в хтмл-тегах, а в мозиле, нетскейпе и фаейрфоксе знаки вопроса, все нормально понимает только опера.
Подскажите пожалуйста в чем проблема?
Посмотри вот здесь - и твой вопрос будет тебе отвечен ;)
http://codeby.net/forum/threads/5584.html
 
G

Guest

#8
А вот вопрос к спецам по Аякс. Я тут попробовал, потом долго-долго плевался. Это я - сам мир или и правда слишком много в нем еще кривовато? Вот тут описание моих приключений (если модераторы предпочитают - могу кросс-постнуть сюды, просто скажите): http://blogs.technet.com/eldar/default.aspx Аргументированные ответы хоть здесь, хоть там, были бы интересны.

«Ее звали Аякс. Все что я слышал о ней, обещало чарующую волшебную ночь. Врали. Бессовестно врали. Все окончилось вечером разочарования...»
 
13.09.2006
23
0
#9
а не проще ли так. функция для вчитывания файлов в переменную.

Код:
<script type="text/javascript" language="javascript">
// FileRead
/*
Mozilla 0.9.6, Linux (Debian).
Mozilla 0.9.7, NT4.
Mozilla 0.9.8, Linux (Red Hat 7.1).
Mozilla 0.9.9, Win2000.
Mozilla 0.9.9, NT4.
Mozilla 0.9.9, Linux (Red Hat 7.2).
Mozilla 1.0 RC1, FreeBSD.
Netscape 6.1, NT4.
Netscape 6.2.1, Win2000.
Netscape 6.2.2, Win2000.
Netscape 6.2.2, NT4.
Netscape 6.2.2, Linux (Debian).
Netscape 7 Win2000
Netscape 8 Win2000
Firefox 1.07 Win2000
Firefox 1.5 Win2000
Opera 8.51 Win2000
Avant Browser 10 Win2000
Internet Explorer 6.0 SP1 Win2000
Internet Explorer 7.0 Windows Vista
*/


function ReadFile(fileUrl) {
var req;
var fileContent;
// branch for IE/Windows ActiveX version
if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
req.open("GET", fileUrl, false);
req.onreadystatechange=function() {
if (req.readyState == 4) {
fileContent = req.responseText;
}
}
req.send(null);
// branch for native XMLHttpRequest object
} else if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.open("GET", fileUrl, false);
req.send(null);
fileContent = req.responseText;
}
return fileContent;
}// FileRead End


alert(ReadFile("abc.txt"));
</script>
 
Статус
Закрыто для дальнейших ответов.