我的网站根据请求通过XHR请求加载其他内容。它在Firefox中运行良好,但IE10搞砸了。 基本上,我循环遍历4个项目的数组,代表我可能要加载的4个页面。如果页面不存在,则丢弃该请求。 以下代码为每个部分创建标题。该部分取自加载的网页并填充以适合主页面。
for (var i=0;i<titleArray.length;i++){
var xhr_file = xhr_files.replace("xhr_replace",titleArray[i]);
var sectTitle = document.createElement("P");
sectTitle.setAttribute ("class","section_title");
sectTitle.appendChild(document.createTextNode(titleArray[i]));
if (IsDocumentAvailable(xhr_file)){
//alert(xhr_file);
newItem.appendChild(sectTitle);
var client = new XMLHttpRequest();
client.open('GET', xhr_file);
client.send();
client.onreadystatechange = function() {
if (client.readyState == 4) {
var FileTex = client.responseText;
var parser = new DOMParser();
var FileHtml = parser.parseFromString(FileTex, "text/html");
var FileCon = FileHtml.getElementsByTagName("DIV");
for (var index = 0; index < FileCon.length; index++){
var tags = FileCon[index].cloneNode(true);
var images = tags.getElementsByTagName("IMG");
for (var i = 0; i < images.length; i++){
var source = images[i].getAttributeNode("src").value;
var newSource = source.replace(/(\.\.\/)+/g,"");
images[i].setAttribute("src", newSource);
};
newItem.appendChild(tags);
};
newWrap.appendChild(newItem);
};
};
};
};
Firefox可以很好地创建标题,并使用网页内容填充该部分。然而,IE10似乎只加载最后一个可用项目,但为所有现有网页创建标题。在IE的网络监视器中,XHR请求完成,内容显示但不在网页中。奇怪的是,当我取消注释alert(xhr_file);
时,IE10中显示了所有内容。所以似乎有一个计时错误,但我无法弄清楚在哪里。同步请求无法解决问题。