IE7 ajax problem
Hej Eksperter,Jeg har et problem med at hente noget xml data ind via ajax. Problemmet kommer dog kun i IE7 og 50/50 i IE8 RC1, mens det køre fint i firefox.
Det data jeg henter kommer jeg i et array som jeg derefter kan bruge i en paging funktion. Men det virker som om at IE ser array'et som tomt, men hvis jeg reloader siden så virker det også i IE7 ?? Min kode ser sådan her ud:
var receiveReq = getXmlHttpRequestObject();
var pagingCount = 0;
var productArray = new Array();
function getXmlHttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
} else {
}
}
function getProducts(param,page) {
if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
receiveReq.open('Post', page, true);
receiveReq.onreadystatechange = handleReceiveProduct;
var datenow = new Date();
param += "&time" + datenow;
receiveReq.send(param);
}
}
function handleReceiveProduct() {
if (receiveReq.readyState == 4) {
var xmldoc = receiveReq.responseXML;
var message_node = xmldoc.getElementsByTagName("message");
var n_message = message_node.length;
var HtmlReturn = "";
for (i = 0; i < n_message; i++) {
var id_node = message_node[i].getElementsByTagName("id");
var name_node = message_node[i].getElementsByTagName("name");
var description_node = message_node[i].getElementsByTagName("description");
var description2_node = message_node[i].getElementsByTagName("description2");
var status_node = message_node[i].getElementsByTagName("status");
var category_node = message_node[i].getElementsByTagName("category");
productArray[i] = "<div class=\"productlist_box\"><h3><div class=\"highlight\">[</div><div class=\"header_text\">" + name_node[0].firstChild.nodeValue + "</div><div class=\"highlight\">]</div></h3>";
productArray[i] += "<div class=\"productlist_select\"><div class=\"productlist_info\"><div class=\"productlist_img\"><img src=\"ui/product_small.jpg\" /></div><!-- product img end -->";
productArray[i] += "<div class=\"productlist_text\">"+ description_node[0].firstChild.nodeValue +"</div><!-- product text end --></div><!-- productlist info end --> ";
productArray[i] += "<div class=\"productlist_price\">$ 1250.00 (incl. vat $ 1500.00)</div><!-- product price end -->";
productArray[i] += "<div class=\"productlist_btn\"><a href=\"\">Add to shopping cart</a></div><!-- product list btn end --></div><!-- product select end -->";
}
productPaging(0,5)
}
}
function productPaging(n,m){
pagingCount += n;
var doc = document.getElementById("productlistbox");
doc.innerHTML = "";
var c = 0;
for(var p = 0; p < m; p++){
if(c ==0){
doc.innerHTML +="<div class=\"productlist\">";
}
var max = pagingCount+p;
if(max >= 0 && max < productArray.length){
doc.innerHTML += productArray[p+pagingCount];
}
if(max >= 0 && max < productArray.length && c==0){
doc.innerHTML += "<div class=\"productlist_split\"> </div>";
}
if(c == 1){
doc.innerHTML += "</div>";
c=-1;
}
c++;
}
}
