0

私はこのような.phpファイルを持っています

... html / php code ...

<script>
  (function(){
    window.mypage.onDataChange(data);
   })();
</script>

...html / php code ...

<script>
  (function(){
    window.mypage.onDataChange = function(data){
             ...
            };
   })();
</script>

ご覧のとおり、ページの上部で関数を呼び出し、この関数を下部で説明していますが、なぜ取得しているのか理解できません

{"msg":"TypeError: window.mypage.onDataChange is not a function","url":"/","lineNumber":"137","browser":{"mozilla":"true","version":"19.0"}}

何が間違っている可能性がありますか?スクリプトをテストしているとき、コンソールでエラーが発生することなく完全に機能しています。

4

1 に答える 1

1

関数を呼び出す前に、関数を定義する必要があります。これが構造化されている方法では、そうはなりません。

コードの 2 つのブロックの順序を切り替えるか (window.mypage.onDataChange = function ... 関数の呼び出しの上にある必要があります)、単に関数呼び出しをオンロードに入れます。

jQuery スタイルの例:

$(function(){
  window.mypage.onDataChange(data);
});

HTML / PHP Code

作業コード:

<script type='text/javascript'>
  window.mypage = {
    onDataChange: function(data){
     console.log(data);
    }
  }

  var data = "This is data, yay";
  window.mypage.onDataChange(data);
</script>
于 2013-03-06T14:28:52.503 に答える