我正在尝试通过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完成时,我想要一个警告框显示您好。但没有任何事情发生。请请给我一个解决方案。
答案 0 :(得分:4)
您应该使用HTML元素(例如&gt;)而不是大于(&gt;)或小于(&lt;)字符。 请尝试以下代码。
<div id="div0" align="right"> <br />
<script type="text/javascript"> <br />
<!-- <br />
alert("Hi"); <br />
--> <br />
</script> <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+')');