[英]Javascript not working when echo'd by php
当我回应此问题时,我有问题:
echo "Logged in! <script> alert('hello'); </script>";
消息“已登录!” 出现,但没有警报。 我该如何解决它,以便得到警报? 我不能使用header();
因为我已经回声了!
我还尝试了多种方法,例如:
echo "Test message <script> window.location.href = 'index.php';"
同样,测试消息已回显,但脚本未运行。
我希望有一个人可以帮助我!
注意:所有这些代码都在xml文件中,我得到该响应并将其放在div中。 因此,脚本包含在我通过responseXML获取的消息中,并在div中输出数据。
我在1句话中有一个问题:如何在没有jquery的ajax调用中运行javascript函数?
我猜想您已经在页面加载后通过ajax调用了此脚本。 在这种情况下,脚本没有运行就不足为奇了,因为浏览器在读取脚本时会运行脚本,并且不会等待其他脚本标记的出现。
如果是这种情况,您可以通过添加一些事件侦听器甚至更好的方法来解决此问题,在ajax响应的末尾调用所需的函数。
试试以下这应该工作
<?php
echo 'Logged in ';
?>
<script> alert("hello")</script>;
<?php
// the rest of your php code
?>
您的PHP看起来不错,但是您可能需要更改收集JavaScript的方式。
考虑以下示例: http : //jsfiddle.net/0vcewvkc/1/
如果仅收集JavaScript,则可以将响应包装在jQuery标签( $()
)中,然后将其附加到文档中。
$("#go").click(function() { // call the function here
// your ajax code would go here, but either way you will end up with a string of JavaScript
var response = '<script>alert("hi");</' + 'script>';
// use jQuery to append this script to your document's body, like so:
$(response).appendTo(document.body)
});
要在没有jQuery的情况下执行此操作,则AJAX调用的结尾应具有以下代码:
var response = 'alert("hi");'; // note that we have removed the <script> tag
var s = document.createElement("script");
s.innerHTML = response;
document.getElementsByTagName('body')[0].appendChild(s);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.