Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / проблема в межбраузерной совместимости ajax / 6 сообщений из 6, страница 1 из 1
30.03.2009, 17:51
    #35901178
kerales
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема в межбраузерной совместимости ajax
Коллеги, добрый день, есть проблема в межбраузерной совместимости ajax. Написал простейший скрипт с использованием ajax:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
 
 var request = false;
 
 function test()
 {
   try{
    alert('start');
	
	if (window.XMLHttpRequest) request = new XMLHttpRequest();
	else request = new ActiveXObject("Microsoft.XMLHTTP");
	
    request.open("GET", "test.xml", true);
    request.onreadystatechange = onCallBack; 
    request.send(null);
	
	alert('end');
	} catch(e) {alert(e)}
 }
 
 function onCallBack()
 {
   try{
    alert('State=' + request.readyState);
	
	if(request.readyState ==  4 )
	{
	    alert('Status=' + request.status);
	}
   } catch(e) {alert(e)}	
 }
 
</script>
<title>Test-Ajax</title>
</head>
<body>
<form method="post" id="dynamic_form" action="" onsubmit="test()"> 
   <input type="submit" value="Send Ajax">
</form>
</body>
</html>
При этом в разных браузерах получаю такой результат срабатывания alert

===

1. в IE (6):

start
state=1
state=2
state=3
state=4
status=200
end


2. в FF (3):

start
state=2
state=3
state=4
status=200
state=1
status=200
end


3. в Opera (9):

start
end
state=2


4. Chrome (1):

start
end


5. Safari (3):

start
end




=======

Т.е. везде кроме FF и IE мало того не выдается 4 статус, так и вообще не срабатывает обработчик вызова onCallBack.

Может кто нибудь подскажет, в чем дело может я что то не так сделал???
...
Рейтинг: 0 / 0
30.03.2009, 17:56
    #35901201
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема в межбраузерной совместимости ajax
Здесь написано как создавать реквест кроссбраузерно.
...
Рейтинг: 0 / 0
30.03.2009, 18:03
    #35901224
kerales
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема в межбраузерной совместимости ajax
а что я делаю не правильно создавая кроссбраузерный реквест?


Для всех браузеров кроме IE у меня срабатывает:

Код: plaintext
if (window.XMLHttpRequest) request = new XMLHttpRequest();

помоему это ничему не противоречит, тем более что проблема и наблюдается везде кроме IE
...
Рейтинг: 0 / 0
30.03.2009, 22:28
    #35901626
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема в межбраузерной совместимости ajax
AJAX асинхронен (читай - события), а твой алерт привязан ко времени: как раз в нормальных браузерах возникает событие именно тогда, когда на экране алерт. Попробуй вывести не в алерт, а в какой-то элемент - это будет более объективная оценка.
...
Рейтинг: 0 / 0
31.03.2009, 13:30
    #35903045
kerales
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема в межбраузерной совместимости ajax
Спасибо большое, зря я этот алерт использовал, все заработало!!!
...
Рейтинг: 0 / 0
31.03.2009, 18:19
    #35904138
The_ShadoW
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема в межбраузерной совместимости ajax
IDVsbruckкак раз в нормальных браузерах возникает событие именно тогда, когда на экране алерт.
Скорее так: события возникают во всех браузерах. Нормальные браузеры про них не забывают, пока показывают юзеру алерт, а остальные - как фишка ляжет.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / проблема в межбраузерной совместимости ajax / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]