JavaScript innerHTML не работает для IE? - PullRequest
6 голосов
/ 25 января 2012

Я использую вызов ajax для того, чтобы вывести список для моего раскрывающегося списка и назначить его HTML, отлично работает для Mozilla Nad Crome, но для IE он отображает пустой раскрывающийся список

var xmlhttp;

var strURL = "selectedu.php?selectward="+selectward;

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function(){
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        if(xmlhttp.responseText=="NOER")
        {
            alert("Select ER Type");
        }
        else
        {
            document.getElementById(id).innerHTML=xmlhttp.responseText;
        }   
    }
}
xmlhttp.open("GET",strURL,true);
xmlhttp.send();

Ответы [ 3 ]

8 голосов
/ 25 января 2012

Свойство innerHTML имеет некоторые проблемы в IE при попытке добавить или обновить элементы формы. Обходной путь - создать div и установить для него свойство innerHtml перед добавлением в DOM:

var newdiv = document.createElement("div");
newdiv.innerHTML = xmlhttp.responseText;
var container = document.getElementById(id);
container.appendChild(newdiv);
4 голосов
/ 25 января 2012

Если документ XHTML, IE не разрешит устанавливать свойство innerHTML напрямую. Вам нужно будет проанализировать responseText в элементах DOM и заменить содержимое существующего элемента этими элементами.

0 голосов
/ 29 июля 2016

Может быть, вы можете использовать append().Пример:

$get('yourTargetObjectId').append('<p>this test to add</p>');

append() вставляет содержимое в конец выбранного элемента и использует prepend() для вставки в начале выбранного элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...