У меня особенно сложная проблема с использованием AJAX, которая отлично работает в IE7 и Firefox, но не в IE6.
У меня есть очень простая домашняя среда AJAX, которая требует, чтобы я расширил объект XMLHttpRequest (или, в случае IE, ActiveXObject XMLHttpRequest), добавив несколько свойств. Соответствующий раздел кода выглядит следующим образом:
//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 этого не делает (жалуется, что «Объект не поддерживает это свойство или метод»). Я пытался использовать свойство «prototype» и различные методы «реального» наследования, но я не могу полностью понять, что происходит с IE6