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 に答える