问题更新 - IE8 XMLHTTP json代码无效 - innerHTML

时间:2010-09-13 19:54:54

标签: json xmlhttprequest innerhtml

更新:经过一番调查,看来问题出在IE8上并替换了表中的innerHTML,而不是json代码(参见here)。一个警告证明json代码正在返回预期的文本,但我不能为我的生活让它推到我想要的地方。显然innerHTML和表格单元格存在问题,您无法替换整个表格的内容;你必须针对特定的细胞。但是,我需要生成tbody的内容 - 我没有可以使用的单个现有行或单元格。

=============================================== ================================= 我已经交了一些不再和公司合作的开发人员编写的代码。代码在Firefox和Chrome中没有问题,但在IE(7或8)中根本不起作用。它没有抛出任何错误;它只是没有显示响应。这是两个功能;谁能帮我吗?我只是在使用遗留应用程序10年后才回到网络工作中,所以我不知道从哪里开始。

var xmlhttp;
var the_object = {};
var suggestions = [];

function loadXMLDoc(url) {
xmlhttp=null;

if (window.XMLHttpRequest) {// code for IE7, Firefox, Mozilla, etc.
    xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {// code for IE5, IE6
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

if (xmlhttp != null) {
    xmlhttp.onreadystatechange = onResponse;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
} else {
    alert("Your browser does not support XMLHTTP.");
}
}

function onResponse() {
if (xmlhttp.readyState!=4) return;
if (xmlhttp.status!=200) {
    alert("Problem retrieving XML data");
    return;
}

//JSON response code
the_object = eval('(' + xmlhttp.responseText + ')');
if (the_object.errMsg){
    alert(the_object.errMsg);
}else{
    **document.getElementById("shoppingCartTable").innerHTML = the_object.cartHTML;**
}

}

function searchMerchants(term){
url = "/merchant-list/?format=json&q=" + term;
loadXMLDoc(url);
}

function addToCart(id){
var denElem  = document.getElementById('item'+id+'_den');
var quanElem = document.getElementById('item'+id+'_quan');

if (denElem.options){
    var den = denElem.options[denElem.selectedIndex].value;
}else{
    var den = denElem.value;
}

var quan = quanElem.options[quanElem.selectedIndex].value;
var voucherNbr = document.getElementById("voucherNbr").value;

var url = "/redeem/add-to-cart/?action=add&format=json&voucherNbr=" + voucherNbr + "&merchantId=" + id + "&denomination=" + den + "&quantity=" + quan;
loadXMLDoc(url);
}

1 个答案:

答案 0 :(得分:0)

我发现如果我通过json生成整个表而不仅仅是正文,并且以span的innerHTML为目标,那么它可以正常工作。