8

我正在尝试从 php 调用 javascript 函数。根据我一直在查看的所有示例,以下内容应该可以工作,但事实并非如此。为什么不?

 <?php
    echo "function test";
    echo '<script type="text/javascript">    run();      </script>';
?>

<html>
    <script type="text/javascript">
        function run(){
            alert("hello world");
        }
    </script>
</html>
4

3 回答 3

19

您的 html 无效。你缺少一些标签。

并且您需要在声明后调用该函数,如下所示

<html>
    <head>
       <title></title>

       <script type="text/javascript">
            function run(){
                alert("hello world");
            }

           <?php
               echo "run();";
           ?>
       </script>

    </head>
    <body>
    </body>
</html>

在这种情况下,您可以将运行放在方法声明之前,但是一旦您将方法调用包装在另一个脚本标记中,脚本标记必须在方法声明之后。

自己试试http://jsfiddle.net/qdwXv/

于 2012-10-10T06:01:11.477 回答
5

该函数必须在使用前声明
它应该是

<html>
    <script type="text/javascript">
        function run(){
            alert("hello world");
        }
       <?php
       echo "function test";
        echo   run();      ;
     ?>
    </script>
</html>
于 2012-10-10T06:02:01.383 回答
0

正如其他人所建议的那样,需要首先声明该函数。但是,如果您需要先从 PHP 中回显 JavaScript,您可以将其存储在 PHP 变量中以便稍后回显,或者让您的代码先等待 dom 完成加载...

document.ready = function() {
    run()
  }

如果您使用 jQuery 或其他框架,他们可能有更好的方法来做到这一点......在 jQuery 中:

$(function(){
   run();
})
于 2012-10-10T06:15:00.797 回答