Phonegap应用程序的变量

时间:2013-06-09 04:19:40

标签: javascript cordova

我正在每个平台上开发一个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>

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分: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(),而不是仅将其作为函数引用传递以注册为侦听器,稍后在{{ 1}}事件。

<强>更新

其他尝试:

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

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

切换脚本的顺序,以防万一事件被快速触发而你却错过了。

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