我有一个显示注释的网页,用户可以点击“标记”链接报告不适当的评论。从AJAX执行Javascript函数 - HTML响应
当他们点击标记链接时,我使用AJAX和innerHTML在注释下方显示下拉框并显示原因代码,例如,垃圾邮件,攻击性,与主题无关等,以及取消按钮。
如果用户单击提交,我想使用另一个AJAX请求将其响应发送到更新数据库的PHP文件,并且他们在收到“Thank you”(无需重新加载页面)。我基本上希望显示下拉框的DIV用另一个AJAX请求替换为“谢谢”。
这就是问题所在。看起来,我无法从第一个AJAX请求的HTML响应中执行AJAX请求。 JavaScript函数失败 - 即使是简单的Alert('hello world')也不起作用。我尝试在调用第一个AJAX请求的主页面中放置JavaScript函数,并将其放置在显示为第一个AJAX请求的HTML响应的PHP文件中,但我没有任何运气 - 函数只是做当他们被调用时不运行。
如果我在外部加载PHP文件,一切正常,所以我知道JavaScript是正确的。当我将PHP文件加载到HTML响应DIV中,然后从那里调用JavaScript时,它不起作用。
所以总结一下,你如何从AJAX请求的HTML响应中执行JavaScript函数?
编辑:这是我所希望做一个样本:
这是填充DIV当人点击该标志链接AJAX部分:
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4)
{
document.getElementById(whichdiv).innerHTML=xmlhttp.responseText;
}
};
XMLHTTP的价值。的responseText来自这个外部文件:
<input type="hidden"/>
<script type="text/javascript" language="javascript">
function displayalert()
{
alert ('Hello World!');
}
</script>
<form name="myform" id="myform">
<input type="text" name="myfield" value="teststring"/><br/>
<input type="button" name="button" value="Submit"
onclick="displayalert();"/>
</form>
注:以上<input type="hidden"/>
来自一个建议,我发现过的http://msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx。
当用户单击按钮时,javascript displayalert()函数不会运行。警告框永远不会弹出。如果我在外部加载文件而不是用innerHTML调用它,那么脚本工作正常。
xmlhttp.responseText是否包含JavaScript代码?
尝试发布您的代码不工作。很难说出你想要做什么。 – noah 2009-08-20 19:35:29
谢谢。我用上面的代码更新了我的原始帖子。 – andrewl85 2009-08-21 04:37:16