IE的AJAX document.getElementById().innerHTML问题?

Spo*_*onk 2 javascript ajax internet-explorer getelementbyid

在有人说我没有读过之前,我可能会说我几乎读到了与我的问题相关的所有内容.但我找不到答案.所以,我有一个简单的AJAX脚本,可以将我的外部文件加载到预定义的div中.这是那些脚本的代码:

    function loadTwitter()
  {
  var xmlHttp;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      try
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
      catch (e)
        {
        alert("Your Browser Don't Support AJAX!");
        return false;
        }
      }
    }
    xmlHttp.onreadystatechange=function()
      {
      if(xmlHttp.readyState==4)
        {
        document.getElementById("column_twitter").innerHTML=xmlHttp.responseText;
        }
      }
    xmlHttp.open("GET","../includes/home/twitter.php",true);
    xmlHttp.send(null);
  }
Run Code Online (Sandbox Code Playgroud)

它在我测试的每个浏览器(FF,Opera,Chrome,Safari)中运行良好,但在IE7内部不想将我的外部php文件注入预定义的div.它总是保持我在div里面的默认文本......我认为问题出在这一行:

document.getElementById("column_twitter").innerHTML=xmlHttp.responseText;
Run Code Online (Sandbox Code Playgroud)

所以,有任何建议如何解决这个IE(7及以上)?

tva*_*son 6

我认为你最好使用jQuery这样的javascript框架,让你专注于实现你的功能,而不是浏览器兼容性和低级网络交互.使用jQuery你可以简单地做:

<script type="text/javascript"
        src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">
</script>
<script type="text/javascript">

$.get( '../includes/home/twitter.php', function(data) {
     $('#column_twitter').html( data );
});

</script>
Run Code Online (Sandbox Code Playgroud)

  • + 1,甚至更短的是$('#column_twitter').load('../ includes/home/twitter.php'); (2认同)