IE9, Javascript: создание и добавление нового элемента - PullRequest
0 голосов
/ 14 июня 2011

У меня серьезные проблемы с тем, чтобы заставить мой код работать в IE9, прекрасно работает в Chrome и Firefox, но я выдаю несколько ошибок. Вот мои 2 функции:

function insertHTML(content){
    var body=document.getElementsByTagName('body');
    body[0].appendChild(createElement(content));
 }

function createElement(string){
     var container=document.createElement('div');
     container.innerHTML=string;
     var element=container.firstChild.cloneNode(true);
     return element;
 }

Я попробовал несколько методов для этого, и, похоже, ни один из них не работает, я точно объясню, что мне нужно сделать ...

... Мне нужно создать новый элемент из строки html, строка отправляется обратно с помощью вызова ajax, поэтому мой сценарий почти не будет знать, что он содержит, пока не получит его.

Я попытался использовать element.innerHTML, но это бесполезно, потому что, если у меня есть один HTML-элемент (форма) на экране, и пользователь вводит в него данные, а затем, когда вставляется другой элемент, он стирает всех пользователей. данные из первой формы. Я делал element.innerHTML + = newData;

Итак, мне нужно 2 вещи:

1) Способ создания нового элемента из HTML-строки. 2) Способ добавления элемента в тело документа.

Все это должно работать в кросс-браузерном режиме, и я не могу использовать jQuery, также новый элемент не может содержаться в родительском элементе div, он должен иметь тело в качестве родителя.

Большое спасибо за вашу помощь,

Richard

1 Ответ

0 голосов
/ 14 июня 2011

innerHTML - это чтение, запись и уничтожение чего-либо внутри вашего div. использовать с особой осторожностью

function insertHTML( htmlString ){
    var bodEle = document.getElementsByTagName('body');
    var divEle = createElement("div");
    divEle.innerHTML = htmlString;
    bodEle.appendChild(divEle);
}
...