此代码显示(即警告)“alert1”但不显示“alert2”。我正在使用三星Galaxy Tab 3 7.0作为目标设备。以下代码位于index.js
。
编辑:“alert3”既未显示 - 也适用于那些对javascript上下文和闭包感到茫然的人。
var app = {
bootStrap: function() {
//code here does not run
window.alert("alert2");
//document.body.style.backgroundColor = "blue";
},
initialize: function() {
var current = this;
//code here runs
window.alert("alert1");
document.addEventListener("deviceready", function(){
//code inside this anonymous function neither runs
window.alert("alert3");
current.bootStrap();
}, false);
}
};
正在调用initialize
方法:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<link rel="stylesheet" type="text/css" href="css/platform.css" />
<script type="text/javascript" src="phonegap.js"></script>
<script type="text/javascript" src="js/angular.min.js"></script>
<script type="text/javascript" src="js/angular-route.min.js"></script>
<script type="text/javascript" src="js/angular-resource.min.js"></script>
<script type="text/javascript" src="js/index.js"></script>
<title>1001Carros</title>
</head>
<body>
<script type="text/javascript">
app.initialize();
</script>
<div id="log">
<button id="clickme" value="Click Me"></button>
pantalla principal
</div>
</body>
</html>
问题:为什么? (也尝试评论并将背景颜色更改为蓝色,但两条线都没有执行)。
答案 0 :(得分:0)
我在cordova 3.4.x中尝试了你的代码,它在模拟器中没有任何问题 我在index.html文件中包含了 cordova.js 。我可以看到您已包含 phonegap.js 。不确定这是不是问题。
您是在真实(三星Galaxy Tab 3 7.0)设备或Android模拟器上进行测试吗? 你正在开发哪种版本的phonegap?
您可以尝试删除所有关闭代码并测试下面的代码
document.addEventListener("deviceready", function(){
//code inside this anonymous function neither runs
window.alert("alert3");
}, false);
}
如果上述代码不起作用,则意味着&#34; deviceready&#34;事件没有被解雇。
您可以尝试创建自定义事件,并检查其是否正常工作。
initialize: function() {
var current = this;
//code here runs
window.alert("alert1");
var event = new Event('myevent');
document.addEventListener("myevent", function(){
//code inside this anonymous function neither runs
window.alert("My Event!");
current.bootStrap();
}, false);
document.dispatchEvent(event);
}