我正在每个平台上开发一个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>
当我尝试检查是否有互联网时,应用程序输出“未定义”。如果我不检查网络,它工作正常。我该如何解决这个问题?
答案 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后调用它会覆盖页面内容,从而导致大部分空白页面。