Как динамически добавить в HTML-таблицу с помощью JavaScript JSON

Моя обычная функция вызова ajax:

function xhr_new(targetId, url, busyMsg, finishCB)
{
    var xhr;

    if(busyMsg !== undefined)
        document.getElementById(targetId).innerHTML = busyMsg;

    try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
    catch(e)
    {
        try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
        catch(e2)
        {
            try { xhr = new XMLHttpRequest(); }
            catch(e3) { xhr = false; }
        }
    }

    xhr.onreadystatechange = function()
    {
        if(xhr.readyState == 4)
        {
            if(xhr.status == 200)
            {
                var target = document.getElementById(targetId)
                target.innerHTML = xhr.responseText;
                var scriptElements = target.getElementsByTagName("script");
                var i;
                for(i = 0; i < scriptElements.length; i++)
                    eval(scriptElements[i].innerHTML);
                if(finishCB !== undefined)
                    finishCB();
            }
            else
                document.getElementById(targetId).innerHTML = 'Error code: ' + xhr.status;
        }
    };

    xhr.open('GET', url, true);
    xhr.send(null);
    // return xhr;
}

Некоторое объяснение: targetId - это идентификатор элемента (обычно div), где будет выводиться текст результата вызова ajax. url - адрес вызова ajax. busyMsg будет временным текстом в целевом элементе. finishCB вызывается, когда операция ajax завершена успешно. Как вы видите в xhr.onreadystatechange = function() {...} все элементы <script> будут собраны из ответа ajax и будут выполняться один за другим. Кажется, он работает очень хорошо для меня. Два последних параметра являются необязательными.

0
задан Vijaykumar 3 July 2017 в 09:51
поделиться