Javascript AJAX功能在IE中不起作用?

时间:2009-04-17 14:27:48

标签: 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;
        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>

4 个答案:

答案 0 :(得分:5)

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

仅适用于ie7向上

var xmlhttp=new XMLHttpRequest();

在Internet Explorer 5和6中,您必须使用

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

答案 1 :(得分:2)

Your issue.

基本上,您正在尝试添加在您添加它的上下文中没有意义的HTML。在没有ul的情况下添加li,或者在没有表的情况下添加行会导致这种情况。

答案 2 :(得分:2)

相信我:使用Ajax框架。

jQuery或原型或任何其他。

不要自己动手 - 你只是看到了这个问题的跨浏览器冰山一角。

如果您必须自己检查,请在收到消息之前检查xmlHttp.status。请记住,IE有时会返回Windows错误代码而不是HTTP状态,如果错误是连接丢失而不是HTTP状态,则旧版FX会抛出异常。

哦,IE6仍然占网络市场的30%左右,而企业网络市场占60%,所以@Paul Whelan的建议值得一试。

答案 3 :(得分:1)

如果结果无效,您可能会收到此错误 - 例如<a><a>foo</a></a><a><p>foo</p></a>

没有看到更多的代码(什么类型的元素“消息”是什么和responseText是什么),很难说更多。

您的代码无效:

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