Недавно я разрабатывал серверную программу с использованием ajax и обнаружил, что браузер IE не поддерживает объект xmlhttprequest, а элемент управления Microsoft.XMLHTTP не найден.
Возникает проблема, которую нам необходимо решить. Решение следующее:
1. Запускаем regsvr32 msxml3.dll;
2. Использовать готовые фреймворки для работы ajax;
3. Оптимизация кода:
if(window.ActiveXObject)
{
xmlHttp = новый ActiveXObject("Microsoft.XMLHTTP");
}
иначе, если (window.XMLHttpRequest)
{
xmlHttp = новый XMLHttpRequest();
}
Если (handle_s == ноль)
handle_s = "bin/normal.py/db";
this.xmlHttp.onreadystatechange = handle_l;
this.xmlHttp.open("GET",handle_s,true);
this.xmlHttp.send(null);
или определите браузер
var agt = navigator.userAgent.toLowerCase();
var is_ie = (agt.indexOf("msie") != -1);
var is_ie5 = (agt.indexOf("msie 5") != -1);
var is_opera = (agt.indexOf("opera") != -1);
var is_mac = (agt.indexOf("mac") != -1);
var is_gecko = (agt.indexOf("gecko") != -1);
вар is_safari = (agt.indexOf("safari")!= -1);
функция CreateXmlHttpReq(обработчик) {
вар xmlhttp = null;
если (is_ie) {
// Гарантированно будет ie5 или ie6
var control = (is_ie5) ? "Microsoft.XMLHTTP": "Msxml2.XMLHTTP"
;
xmlhttp = новый ActiveXObject (управление);
xmlhttp.onreadystatechange = обработчик;
} поймать (бывший) {
// TODO: лучшее справочное сообщение
alert("Вам необходимо включить активные сценарии и элементы управления ActiveX");
}
} else {
// Mozilla
xmlhttp = новый XMLHttpRequest();
xmlhttp.onload = обработчик;
xmlhttp.onerror = обработчик
}
вернуть xmlhttp;
}
или