创建PhoneGap应用程序后已经出错,无法调用方法方法'querySelector'



在我创建了一个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事件的代码段中调用的函数。

最新更新