1

我正在每个平台上开发一个 Phonegap 应用程序。除了声明变量外,一切都很顺利。这是我的代码:

<script type="text/javascript" src="phonegap.js"></script>
<script type="text/javascript">
  var something = "Sth";
  document.addEventListener('deviceready',startsth(),false);
  function startsth(){document.write(something);}
    ....
</script>

当我尝试检查是否有互联网时,应用程序输出“未定义”。如果我不检查网络,它工作正常。我该如何解决这个问题?

4

2 回答 2

2

deviceready以错误的方式连接处理程序:

document.addEventListener('deviceready',startsth(),false);
                                                 ^------ REMOVE THIS PARENS

当您连接到startsth()您时,您使用的是函数的返回值startsth,而不是指向函数本身的指针,这只是startsth

于 2013-06-09T05:09:13.490 回答
0

用这个:

<script type="text/javascript" src="phonegap.js"></script>
<script type="text/javascript">
  var something = "Sth";
  document.addEventListener('deviceready',startsth,false);
  function startsth(){document.write(something);}
    ....
</script>

startsth之后您立即使用括号调用该函数,即startsth(),而不是仅仅将其作为函数引用传递以注册为侦听器,以便稍后在deviceready事件发生时调用。

更新:

其他要尝试的事情:

确保 src="phonegap.js" 的路径正确。

将脚本移动到文档顶部附近,这样您就不会错过任何事件。

切换脚本的顺序,以防事件被快速触发而您错过了它。

不要使用document.write(...)- 如果在 DOM 加载后调用它会覆盖页面内容,从而导致大部分空白页面。

于 2013-06-09T05:55:55.917 回答