Javascript问题

时间:2010-04-19 03:39:44

标签: javascript html ajax

我正在尝试通过AJAX在div标签中执行脚本。但是在div标签中,脚本不会运行 这是我的代码:

<div id="div0" align="right">
  <script type="text/javascript">
  <!--
    alert("Hi");
  -->
  </script>
</div>  

它对我不起作用。请有人告诉我,问题是什么?

编辑:

我的完整代码是:

<html>  
   <head>  
   <script type="text/javascript">
      var xmlhttp;
      function loadXMLDoc(url)
      {
        xmlhttp=null;
        if (window.XMLHttpRequest)
        {// code for Firefox, Opera, IE7, etc.
          xmlhttp=new XMLHttpRequest();
        }
        else if (window.ActiveXObject)
        {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        if (xmlhttp!=null)
        {
          xmlhttp.onreadystatechange=state_Change;
          xmlhttp.open("GET",url,true);
          xmlhttp.send(null);
        }
        else
        {
          alert("Your browser does not support XMLHTTP.");
        }
      }

     function state_Change()
     {
      if (xmlhttp.readyState==4)
      {// 4 = "loaded"
        if (xmlhttp.status==200)
        {// 200 = "OK"
         document.getElementById('T1').innerHTML=xmlhttp.responseText;
        }
        else
        {
          alert("Problem retrieving data:" + xmlhttp.statusText);
        }
     }
   }
   </script>
   </head>

   <body onload="loadXMLDoc('test_xmlhttp.php')">
     <div id="T1"></div><br />
   </body>

  </html>  

我的test_xmlhttp.php如下:

  <script type="text/javascript">
  <!--
    alert("Hi");
  -->
  </script>

当AJAX完成时,我想要一个警告框显示您好。但没有任何事情发生。请请给我一个解决方案。

5 个答案:

答案 0 :(得分:4)

您应该使用HTML元素(例如&gt;)而不是大于(&gt;)或小于(&lt;)字符。 请尝试以下代码。

<div id="div0" align="right">  <br />
  &lt;script type="text/javascript"&gt; <br />
  &lt;!--  <br />
    alert("Hi");  <br />
  --&gt;  <br />
  &lt;/script&gt;  <br />
</div>   <br />

答案 1 :(得分:3)

问题可能是HTML注释,应该在S.Mark指出时注释掉。

然而,没有理由包含这些评论。它们最初被建议用于防止没有JavaScript / JScript支持的浏览器破坏代码(尝试将其作为标记读取)。我认为最后一个带有该问题的浏览器就像'95一样,并且不再使用了。)

如果您正在提供XHTML 1.0 Strict文档,那么使用CDATA块有合理的理由,但我怀疑您是否会这样做。

答案 2 :(得分:1)

也许您在本地运行它并且您的浏览器阻止了javascript的运行?

我刚刚在我的网站上运行代码并且加载得很好。

答案 3 :(得分:0)

这没有任何失败的意义。我在IE8和Firefox上尝试过它。 IE8会阻止它。但是一旦删除块,它就可以正常工作。您是否注意到IE的任何阻塞?

答案 4 :(得分:0)

尝试在state_Change函数中使用eval()函数,如下所示:

document.getElementById('T1').innerHTML=eval('('+xmlhttp.responseText+')');