Javascript 未捕获引用错误:与phonegap一起使用时未定义Firebase

Javascript 未捕获引用错误:与phonegap一起使用时未定义Firebase,javascript,html,dom,firebase,Javascript,Html,Dom,Firebase,我有以下html代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Current Tour</title> <!-- cordova --> <script type="text/javascript" src="../cordova.js"></script> <!-- jq

我有以下html代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Current Tour</title>
    <!-- cordova -->
        <script type="text/javascript" src="../cordova.js"></script>
    <!-- jquery -->
        <link rel="stylesheet" href="../jquery/jquery.mobile-1.3.2.min.css">
        <script type="text/javascript" src="../jquery/jquery-1.8.3.min.js"></script>
        <script type="text/javascript" src="../jquery/jquery.mobile-1.3.2.min.js"></script>

</head>
<body>
    <!-- firebase database -->
        <script type='text/javascript' src='https://cdn.firebase.com/v0/firebase.js'></script>
    <!-- current_tour.js -->
        <script src="../js/current_tour.js"></script>

    <h1>Current Tour</h1>
</body>
</html>

如果我创建一些按钮并使用button onclick事件调用onDeviceReady,它就可以正常工作。但是,如果我尝试使用事件侦听器deviceready调用onDeviceReady,我会得到以下错误:未捕获引用错误:未定义Firebase。

deviceready
表示PhoneGap API已准备就绪,而不是外部JavaScript已完成加载()


相反,您应该使用传统的事件。

值得注意的是,Firebase有一个专门用于PhoneGap的库:如何检查是否已加载外部Java脚本。
load
事件将在加载后触发。
var trip_id;

function onDeviceReady() {
    alert('device ready');
    var fb_id_ref = new Firebase('https://trip- chronicle.firebaseio.com/'+window.localStorage.getItem("fb_id"));
    console.log("**DEBUG**: Connected to firebase");

    var facebook_id = fb_id_ref.name();

    fb_id_ref.on('child_added', function(childSnapShot){
    console.log("**DEBUG**: fireBaseRef.on()");
    trip_id = childSnapShot.ref();
    alert(trip_id);
    });
}    

document.addEventListener("deviceready", onDeviceReady, false);