Вопрос обновлен - IE8 XMLHTTP JSON-код не работает - innerHTML - PullRequest
0 голосов
/ 13 сентября 2010

ОБНОВЛЕНО: после некоторого осмотра кажется, что проблема в IE8 и замене innerHTML в таблицах, а не в коде json (см. здесь ).Оповещение доказывает, что код 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 голосов
/ 17 сентября 2010

Я обнаружил, что, если я сгенерировал всю таблицу с помощью json, а не только тело, и нацелив ее на innerHTML, он работает нормально.

...