У меня есть особенно сложная проблема с AJAX, которая отлично работает в IE7 и Firefox, но не в IE6.
У меня очень простая самодельная структура AJAX, которая требует, чтобы я расширил объект XMLHttpRequest (или в случае IE, XMLHttpRequest ActiveXObject), добавив пару свойств. Соответствующий раздел кода выглядит следующим образом:
//the following is the constructor for our ajax request object - which extends the standard object. It is used in the method below it
function FD_XMLHttpRequest() {
var xmlHttpReq = false;
if (window.XMLHttpRequest) { // Mozilla/Safari
xmlHttpReq = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
//we now have the request object - extend it with things we might need to store with it
xmlHttpReq.onReturnFunc = null; //******ERROR IN IE6******
xmlHttpReq.targetDivId = null; //******ERROR IN IE6******
return xmlHttpReq;
}
//To use:
myXHReq = new FD_XMLHttpRequest();
myXHReq.onReturnFunc = someFunction;
myXHReq.targetDivId = "myDiv";
Проблема заключается в том, что FF и IE7 позволяют расширять объект таким образом, но IE6 не делает (он жалуется, что "Object не поддерживает это свойство или метод" ). Я пробовал использовать свойство "prototype" и различные методы "реального" наследования, но я не могу понять, что происходит с IE6