Javascript AJAX函数在IE中不起作用?

Javascript AJAX函数在IE中不起作用?,javascript,internet-explorer,xmlhttprequest,Javascript,Internet Explorer,Xmlhttprequest,我有以下代码: function render_message(id) { var xmlHttp; xmlHttp=new XMLHttpRequest(); xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState==4) { document.getElementById('message').innerHTML=xmlHttp.responseText;

我有以下代码:

function render_message(id)
{
var xmlHttp;
  xmlHttp=new XMLHttpRequest();  
  xmlHttp.onreadystatechange=function()
    {
    if(xmlHttp.readyState==4)
      {
        document.getElementById('message').innerHTML=xmlHttp.responseText;
        document.getElementById('message').style.display='';
        }
    }
    var url="include/javascript/message.php";
    url=url+"?q="+id;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}
由于某些原因,它在IE中不起作用,并且在“document.getElementById('message').innerHTML=xmlHttp.responseText;”这一行上报告了一个错误,其中包含一个“未知运行时错误”

有人能帮忙吗

编辑:添加到div的代码是有效代码

以下是答复:

<div style="margin-left:auto;margin-right:auto;width:400px;">
    <img src="/forum/img/avatars/2.gif" width="90" height="89" style="float:left;">
    <div style="margin-left:100px;">
        <span style="font-size:16pt;">Sam152</a></span><br>
        <span style="font-size:10pt;text-transform:uppercase;font-weight:bold;">From Sam152</span><br>
        <span style="font-size:10pt;font-weight:bold;">Recieved April 17, 2009, 9:44 am</span><br>
        <br><br>

    </div>
</div>
<div style="margin-left:auto;margin-right:auto;width:400px;">
        asd</div>
<div style="margin-left:auto;margin-right:auto;width:400px;text-align:right;padding-top:10px;">
        <span onClick="requestPage('http://www.gametard.com/include/scripts/delete_message.php?id=14');document.getElementById('message14').style.display='none';document.getElementById('message').style.display='none';" class="button">Delete</span>
        <span onClick="document.getElementById('message').style.display='none';" class="button">Close</span>
        <span onClick="document.getElementById('to').value ='Sam152';document.getElementById('to').style.color ='#000';document.getElementById('newmessage').style.display='';" class="button">Reply</span>     

</div>

Sam152
来自Sam152
已于2009年4月17日上午9:44收到


自闭症 删除 接近 回复


本质上,您试图添加的HTML在您要添加的上下文中没有意义。在没有ul的地方添加li,或者在没有表格的地方添加行,都会导致这种情况。

如果结果是无效的HTML,则会出现此错误-例如
foo
foo

如果看不到更多的代码(message是什么类型的元素,responseText是什么),就很难说得更多

您的代码无效:

<span style="font-size:16pt;">Sam152</a></span>
                                    ^^^^
Sam152
^^^^

不确定以下内容是否适用于您,因为您没有提及您使用的ie版本

仅适用于ie7以上版本

var xmlhttp=new XMLHttpRequest();
在Internet Explorer 5和6中,必须使用

var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

请相信我:使用Ajax框架

jQuery、prototype或任何其他

不要自作主张——你看到的只是跨浏览器问题的冰山一角

如果必须自己做,请在收到邮件之前检查
xmlHttp.status
。请记住,IE有时会返回Windows错误代码而不是此处的HTTP状态,如果错误是连接丢失而不是HTTP状态,则旧版FX会引发异常


哦,IE6仍然占网络市场的30%和公司市场的60%,因此@Paul Whelan的建议也值得一看。

HTML非常合理,它是一个嵌套在div中的div。@Sam152:答案是指id为“message”的元素,不是响应体本身。我仔细检查了HTML,没有发现任何可能导致它的原因。哦,请记住,新的ActiveXObject(“Microsoft.XMLHTTP”)并不总是与SSL(特别是在IE5中)一起工作,因此应该避免安全应用程序。还有人关心IE5吗?很好的建议,我明白你的意思。这只适用于一个小应用程序,现在我的AJAX编程到此结束。我将如何实现您的xmlHttp.status建议?Google托管jQuery,使其非常容易用于小型应用程序-我只使用他们的一个。否则,请尝试获取xmlHttp.status,然后处理除200或抛出的异常之外的任何内容。任何状态超过505(在IE中)都是Windows连接错误,而不是服务器连接错误:例如,12002是连接超时。我是一名Javascript新手程序员,这会修复错误吗?你会在我现有的函数中向我展示吗?IE6现在实际上下降了20%以下。不要和你的帖子争论,只是一个让我内心快乐的小因素。@Sam152-我恐怕不是那么简单。不久前,我编写了自己的版本——为了在IE5和6中保持稳定,FX1和FX2花了很长时间,使用了几百行javascript(包括解释所有时髦黑客行为的注释)。id=“message”的元素看起来像什么?您的代码无效-见我的答案