代码之家  ›  专栏  ›  技术社区  ›  Tareq

javascript问题

  •  0
  • Tareq  · 技术社区  · 16 年前

    我正试图通过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>  
    

    我的测试xmlhttp.php如下:

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

    我想要个警报盒 您好! 当Ajax完成时。但什么也没发生。请给我一个解决办法。

    5 回复  |  直到 15 年前
        1
  •  4
  •   Hossain Khan    16 年前

    您应该使用HTML元素(例如>)而不是大于(>)或小于(<)的字符。 尝试以下代码。

    <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 />
    
        2
  •  3
  •   bcherry    16 年前

    问题可能是HTML注释,正如S.Mark指出的那样,它应该被注释掉。

    然而 ,没有任何理由包括这些评论。最初的建议是防止不支持javascript/jscript的浏览器破坏代码(尝试将其作为标记读取)。我想最后一个有这个问题的浏览器是在95年出现的,现在不再使用了:)

    如果您提供XHTML 1.0严格的文档,那么使用CDATA块是有正当理由的,但我怀疑您是否愿意这样做。

        3
  •  1
  •   Mitch Dempsey    16 年前

    也许您正在本地运行它,而您的浏览器阻止了javascript的运行?

    我只是在我的网站上运行代码,它加载得很好。

        4
  •  0
  •   Kangkan    16 年前

    这是没有失败的意义的。我在IE8和火狐上试过。IE8阻止了它。但是一旦移除了模块,它就可以正常工作了。你注意到IE堵塞了吗?

        5
  •  0
  •   Tareq    15 年前

    尝试使用 eval() 在您的状态下的功能更改功能如下:

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