-4

我的编程逻辑在哪里出错了?

我有 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();
?>
4

1 回答 1

3

在您提供的有限信息的情况下,在这里进行疯狂的猜测。

我的假设是您不是通过 PHP 的 、 或 函数“包含”文件include,而是require实际上使用 AJAX 加载页面内容。include_oncerequire_once

如果是这种情况,那么我还假设您正在使用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如果可能的话,应该避免这种情况。考虑重新设计布局以使用回调。

于 2012-05-26T20:45:33.073 回答