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

您需要在调用它们之前定义您的函数。以这种结构的方式,它不会这样做。

切换两个代码块的顺序(window.mypage.onDataChange = function ... 需要在函数调用之上),或者只是将函数调用放入 onload。

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 回答