在我创建了一个phonegap应用程序并运行它之后,logcat 中似乎出现了错误
Uncaught TypeError: Cannot call method 'querySelector' of null at file:///android_asset/www/js/index.js:41
这是个问题吗?我该怎么解决这个问题?
我犯了这个错误,我想你已经试着做了我所做的。我从示例应用程序代码开始构建应用程序,但不太了解事件模型以及什么时候触发。
示例应用程序在index.HTML 中包含一个HTML部分
<div id="deviceready" class="blink">
<p class="event listening">Connecting to Device</p>
<p class="event received">Device is Ready</p>
</div>
这是JS中触发的事件更新的内容:
onDeviceReady: function() {
app.receivedEvent('deviceready');
},
//...
// Update DOM on a Received Event
receivedEvent: function(id) {
var parentElement = document.getElementById(id);
app.receivedEvent('deviceready');
var receivedElement = parentElement.querySelector('.received');
listeningElement.setAttribute('style', 'display:none;');
receivedElement.setAttribute('style', 'display:block;');
console.log('Received Event: ' + id);
}
但是我去掉了ID为"deviceready"的div,所以JS失败了,出现了您描述的错误。我删除了呼叫应用程序receivedEvent…一切正常。已经说过,放回div会导致另一个最大调用堆栈错误,所以我不相信我的JS是正确的。
我(想!)我还学到了不要试图使用经典的$(document).ready(function)来加载你的应用程序功能。这应该是从触发onDeviceReady事件的代码段中调用的函数。