在我创建了一个 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 因您描述的错误而失败。我删除了调用 app.receivedEvent... 一切正常。话虽如此,将 div 放回去会导致不同的最大调用堆栈错误,所以我没有卖掉我的 JS 仍然是正确的。
我(想!)我还学到的是不要试图使用经典的 $(document).ready(function() 来加载您的应用程序功能。这应该是从一段代码调用的函数,其中而是触发 onDeviceReady 事件。