更新:经过一番调查,看来问题出在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);
}
答案 0 :(得分:0)
我发现如果我通过json生成整个表而不仅仅是正文,并且以span的innerHTML为目标,那么它可以正常工作。