为什么以下代码运行后什么也没有呢?而如果把php代码放到js代码的前面,则一切正常。<script type="text/javascript">
function x()
{
alert('ok');
}
</script><?php
echo "<script type='text/javascript'>x()</script>";
?>

解决方案 »

  1.   

    说反了。是当前代码运行正常。而如果把php代码放到js代码的前面,则没有显示。
      

  2.   

    确实是这样,这可能跟php解释代码机制有关。
    请高人进一步解释。
      

  3.   

    JS代码是由浏览器解析的,和PHP没有关系,PHP只负责输出页面内容。
    至于这段JS为何不能运行,那就简单了,因为你在调用x()函数的时候该函数还没有定义。所以,要想让代码成功运行可以这样:
    <?php
    echo "<script type='text/javascript'>window.onload = function() { x(); };</script>";
    ?><script type="text/javascript">
    function x()
    {
    alert('ok');
    }
    </script>
    这样一来只有当页面全部加载完成后才会去调用x()函数,而这时该函数已经定义好了。
      

  4.   


    我这边是可以正常运行的,建议检查一下"<script type='text/javascript'>x()</script>";这句生成的HTML代码是否正确
      

  5.   

    如果该段php代码在前, 当浏览器调用X()的时候,该函数还没有定义好呢。zjerryj正解
      

  6.   

    只是一个没有分清PHP和JS运行顺序的问题6楼己经给出正解