我有一个PHP文件被调用来通过ajax填充DIV。一切都运行良好和花花公子除了我不能为我的生活得到一个JS警告框从PHP弹出。
以下是我正在测试的内容(这是在PHP结束时加入的,我也尝试过它的开头,中间等):
echo "does this show up?";
echo "<script language='javascript'>alert('thanks!');</script>";
“这会出现吗?”是回声,我可以在codeinspector中看到JS,但没有警告框。如果我将该代码放入其自己的PHP文件中(因此它不再作为更大的ajax应用程序的一部分嵌入),它的工作正常。
有什么建议吗?
答案 0 :(得分:3)
通过AJAX发回script
阻止是错误的方式。相反,您应该返回一个值(可能使用json_encode进行JSON,然后使用javascript JSON library进行解码),然后从脚本中调用alert。
例如,像这样的事情(未经测试,但你明白了):
PHP:
echo json_encode(Array('OperationSucceeded' => 'true', 'Message' => 'test'));
使用Javascript:
retValObj = JSON.parse(retVal);
if (retValObj.Message != null) {
alert(retValObj.Message);
}
答案 1 :(得分:0)
在页面加载期间解析javascript一次。因此,如果你把这些代码放在页面中它工作正常....浏览器不解析ajax加载的内容...但我们可以从ajax加载的内容进行javascript函数调用。