Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ajax в IE
 
 автор: Лена   (08.04.2010 в 13:21)   письмо автору
 
 



function GetId(inputValue, fieldID) {
var req;
    if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    alert(req);
}



В других броузерах объект создается, в IE - не хочет. Почему?

  Ответить  
 
 автор: AlexShag   (08.04.2010 в 17:39)   письмо автору
 
   для: Лена   (08.04.2010 в 13:21)
 


function XHR() {
var ob = null;

if (window.XMLHttpRequest) try {ob = new XMLHttpRequest} catch (c) {}
else if (window.ActiveXObject)
  for (var d = 0, b; b = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"] [d++];)
      try { ob = new ActiveXObject (b); break} catch (c) {}
return ob;

}


Работает везде.

  Ответить  
 
 автор: Лена   (13.04.2010 в 10:49)   письмо автору
 
   для: AlexShag   (08.04.2010 в 17:39)
 

Делаю так:
Ставлю вашу функцию
Вызываю ее внутри моей:
function GetId(inputValue, fieldID) {
var req;
req = XHR();
}
Перестает работать вообще, не только в IE.

  Ответить  
 
 автор: AlexShag   (13.04.2010 в 10:52)   письмо автору
 
   для: Лена   (13.04.2010 в 10:49)
 

Надо смотреть исходники. Там собака порылась где то в другом месте а не в AJAX. И ещё. Объект для работы с AJAX нужно объявлять как глобальную переменную. Один раз его создать и потом всё время юзать.

  Ответить  
 
 автор: vtos   (10.04.2010 в 17:34)   письмо автору
 
   для: Лена   (08.04.2010 в 13:21)
 

Вам в свой код надо добавить попытку создания еще и вот такого объекта:
req = new ActiveXObject("Msxml2.XMLHTTP");

Разные версии IE используют два разных парсера XML: Msxml2.XMLHTTP и Microsoft.XMLHTTP, это зависит от версии JS, установленной в IE. Суть такова, что в IE надо пробовать создавать объекты двух разновидностей.

  Ответить  
 
 автор: Лена   (13.04.2010 в 10:47)   письмо автору
 
   для: vtos   (10.04.2010 в 17:34)
 

А как мне поставить условие, чтобы в зависимости от условия создавался нужный объект?

function GetId(inputValue, fieldID) {
    var req;
    if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
    //вопрос про эти две строки    
    req = new ActiveXObject("Microsoft.XMLHTTP");
    req = new ActiveXObject("Msxml2.XMLHTTP");
    }
        if (req) {
//дальше идет построение запроса к серверу
}

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

  Ответить  
 
 автор: vtos   (13.04.2010 в 12:33)   письмо автору
 
   для: Лена   (13.04.2010 в 10:47)
 

Обратите, пожалуйста, внимание вот на эту фразу AlexShag:
>Надо смотреть исходники. Там собака порылась где то в другом месте а не в AJAX. И ещё. Объект для работы с AJAX нужно объявлять как глобальную переменную. Один раз его создать и потом всё время юзать.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования