我的编程逻辑在哪里出错?
我有2个php文件。文件1包含文件2.文件1从文件2调用php函数。在php函数内部有一堆html。 HTML完美无缺。在函数的最后我有这个javascript ....
<script type="text/javascript">
alert('hello');
</script>
这个javascript没有警告“你好”。 我做错了什么?
提前谢谢。
编辑:新问题,因为我已经完成了最后一个问题。
理论上,下面的代码会正常运行吗? (是/否)
<?php function AlertHelp(){
?><script>
alert('help');
</script><?
AlertHelp();
?>
答案 0 :(得分:3)
在这里用你提供的有限信息进行疯狂的猜测。
我的假设是你没有通过PHP的include
,require
,include_once
或require_once
函数“包含”该文件,但实际上是使用AJAX加载在页面的内容中。
如果是这种情况,那么我还假设您正在使用innerHTML
将内容放在页面上。
突然之间解决方案显而易见:<script>
添加的innerHTML
标签未被解析并运行。你可能会做这样的事情:
// assume `result` is the variable containing the AJAX response and `elem` the element it goes in
elem.innerHTML = result; // this doesn't change
result.match(/<script[^>]*>([\s\S]*?)<\/script>/i,function(m) {eval(m[1]);});
但请注意,如果可能,应避免使用eval
。考虑重新设计布局以改为使用回调。