Internet Explorer上的AJAX:将innerHTML设置为xmlhttp.responseText失败

时间:2011-03-31 17:58:40

标签: ajax internet-explorer

document.getElementById("livesearch").innerHTML=xmlhttp.responseText; //在IE上失败:“未知的运行时错误”。 Line&字符索引用于word文档的开头。适用于Firefox。

document.getElementById("livesearch").innerHTML="Something special"; //有效

alert(xmlhttp.responseText); //适用于IE(作为调试测试完成)

“livesearch”的目标是<div id="livesearch></div>

2 个答案:

答案 0 :(得分:2)

您尝试插入的内容必须是最严格意义上的完整HTML。我看到的一个例子是:尝试插入<tr><td>data</td></tr>会产生相同的运行时错误,因为在您插入的代码中实际没有<table>,IE会删除<tr><td>标记,并且您正在尝试插入未标记的文本。

这是一个例子(用户froufrou已将其发布在其他地方):http://www.ericvasilik.com/2006/07/code-karma.html

答案 1 :(得分:0)

不要在非块元素下插入HTML代码。

<p>
<div id="livesearch></div>
</p>

<a href="xxx">
<div id="livesearch></div>
</a>
你应该:

<div id="xxxxx">
<div id="livesearch></div>
</div>