Phonegap javascript警报不工作?

Phonegap javascript警报不工作?,javascript,android,cordova,Javascript,Android,Cordova,我对phonegap和javascript都很陌生,我正在尝试制作一个简单的联系人加法器应用程序,但由于某些原因,当我尝试添加联系人时,什么都没有发生。甚至没有警报出现。顺便说一下,我正在eclipse中使用android模拟器来测试我的应用程序。有人能告诉我我做错了什么吗?这是我的index.html: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Typ

我对phonegap和javascript都很陌生,我正在尝试制作一个简单的联系人加法器应用程序,但由于某些原因,当我尝试添加联系人时,什么都没有发生。甚至没有警报出现。顺便说一下,我正在eclipse中使用android模拟器来测试我的应用程序。有人能告诉我我做错了什么吗?这是我的index.html:

<!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link rel="stylesheet" type="text/css" href="css/index.css" />
        <title>Add Contacts</title>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
        <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
        </head>
    <script>

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

     function deviceIsReady()
     {
    document.getElementById("save").addEventListener("click",addContact, false);
    alert("READY!");
      }
   function addContact()
    {
    var fullName = document.getElementById("first").value+ " " + document.getElementById("last").value;
    var theContact = navigator.contacts.create({"displayName" : fullName});
    theContact.save();
        alert("ADDED!");
     }
</script>           

   <body onload = "deviceIsReady()">
   <h1>Hello World</h1>

   <form>
    <label for="first">First</label><br>
    <input type="text" id="first"/><br>
    <label for="last">Last</label><br>
    <input type="text" id="last"/><br>
    <input type="button" value="Save Contact" id ="save"/>
    </form>
   </body>
</html>
脚本标记位于头部和身体标记之间。尝试将其移动到body标记中

您的窗口加载事件也可能无法工作。只需将其删除,然后简单地附加设备就绪事件,因此您的脚本如下所示:

<script>
document.addEventListener("deviceready",deviceIsReady, false);

function deviceIsReady() {
    document.getElementById("save").addEventListener("click",addContact, false);
    alert("READY!");
}

function addContact() {
    var fullName = document.getElementById("first").value+ " " + document.getElementById("last").value;
    var theContact = navigator.contacts.create({"displayName" : fullName});
    theContact.save();
    alert("ADDED!");
}
</script> 
脚本标记位于头部和身体标记之间。尝试将其移动到body标记中

您的窗口加载事件也可能无法工作。只需将其删除,然后简单地附加设备就绪事件,因此您的脚本如下所示:

<script>
document.addEventListener("deviceready",deviceIsReady, false);

function deviceIsReady() {
    document.getElementById("save").addEventListener("click",addContact, false);
    alert("READY!");
}

function addContact() {
    var fullName = document.getElementById("first").value+ " " + document.getElementById("last").value;
    var theContact = navigator.contacts.create({"displayName" : fullName});
    theContact.save();
    alert("ADDED!");
}
</script> 
只需移除

 <body onload = "deviceIsReady()">
做一个简单的

<body>
你还需要把你的

<script>
在头上或身上,但不是在他们之间

您需要在设备上观看活动,但不能在bodylaod上观看。所以试试这个:

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
        <script>
        document.addEventListener("deviceready",deviceIsReady, false);

        function deviceIsReady(){
           alert("READY!");
        }
        </script> 
   </head>
   <body>
   <h1>Hello World</h1>

   <form>
    <label for="first">First</label><br>
    <input type="text" id="first"/><br>
    <label for="last">Last</label><br>
    <input type="text" id="last"/><br>
    <input type="button" value="Save Contact" id ="save"/>
    </form>
   </body>
</html>
它应该对我有用,有用!。如果没有,请检查清单,也许您对它做了一些错误的处理

只需删除

 <body onload = "deviceIsReady()">
做一个简单的

<body>
你还需要把你的

<script>
在头上或身上,但不是在他们之间

您需要在设备上观看活动,但不能在bodylaod上观看。所以试试这个:

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
        <script>
        document.addEventListener("deviceready",deviceIsReady, false);

        function deviceIsReady(){
           alert("READY!");
        }
        </script> 
   </head>
   <body>
   <h1>Hello World</h1>

   <form>
    <label for="first">First</label><br>
    <input type="text" id="first"/><br>
    <label for="last">Last</label><br>
    <input type="text" id="last"/><br>
    <input type="button" value="Save Contact" id ="save"/>
    </form>
   </body>
</html>

它应该对我有用,有用!。如果没有,请检查清单,也许您对它做了一些错误

此代码适用于我:

<!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <meta name="format-detection" content="telephone=no" />
        <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"  href="jquery.mobile-1.3.2.css">
        <link rel="stylesheet" type="text/css" href="css/index.css" />
        <script type="text/javascript" src="cordova.js"></script>
        <script src="jquery-1.10.2.min.js" language="javascript" type="text/javascript"></script>
        <script language="javascript" type="text/javascript">
          var $j = jQuery.noConflict();
        </script>
        <script src="jquery.mobile-1.3.2.min.js" language="javascript" type="text/javascript"></script>

        <title>Add Contacts</title>
        <script>
            function loaded(){
                document.addEventListener("deviceready", deviceIsReady, false);
            }

            function deviceIsReady()
            {
                document.getElementById("save").addEventListener("click", addContact, false);
                alert("READY!");
            }
            function addContact()
            {
                var fullName = document.getElementById("first").value+ " " + document.getElementById("last").value;
                var theContact = navigator.contacts.create({"displayName" : fullName});
                theContact.save();
                alert("ADDED!");
            }
        </script>  
    </head>         

   <body onload = "loaded()">
   <h1>Hello World</h1>

   <form>
    <label for="first">First</label><br>
    <input type="text" id="first"/><br>
    <label for="last">Last</label><br>
    <input type="text" id="last"/><br>
    <input type="button" value="Save Contact" id ="save"/>
    </form>
   </body>
</html>
我用android sdk在eclipse中进行了尝试,我在emulator上得到了警报,在我添加了一个新联系人后,我在联系人上播下了警报。在尝试此代码之前,请注意脚本和样式链接。重写它,或者下载最新的


此代码适用于我:

<!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <meta name="format-detection" content="telephone=no" />
        <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"  href="jquery.mobile-1.3.2.css">
        <link rel="stylesheet" type="text/css" href="css/index.css" />
        <script type="text/javascript" src="cordova.js"></script>
        <script src="jquery-1.10.2.min.js" language="javascript" type="text/javascript"></script>
        <script language="javascript" type="text/javascript">
          var $j = jQuery.noConflict();
        </script>
        <script src="jquery.mobile-1.3.2.min.js" language="javascript" type="text/javascript"></script>

        <title>Add Contacts</title>
        <script>
            function loaded(){
                document.addEventListener("deviceready", deviceIsReady, false);
            }

            function deviceIsReady()
            {
                document.getElementById("save").addEventListener("click", addContact, false);
                alert("READY!");
            }
            function addContact()
            {
                var fullName = document.getElementById("first").value+ " " + document.getElementById("last").value;
                var theContact = navigator.contacts.create({"displayName" : fullName});
                theContact.save();
                alert("ADDED!");
            }
        </script>  
    </head>         

   <body onload = "loaded()">
   <h1>Hello World</h1>

   <form>
    <label for="first">First</label><br>
    <input type="text" id="first"/><br>
    <label for="last">Last</label><br>
    <input type="text" id="last"/><br>
    <input type="button" value="Save Contact" id ="save"/>
    </form>
   </body>
</html>
我用android sdk在eclipse中进行了尝试,我在emulator上得到了警报,在我添加了一个新联系人后,我在联系人上播下了警报。在尝试此代码之前,请注意脚本和样式链接。重写它,或者下载最新的


在我的回答中添加了更多内容请注意,我没有设置phonegap来测试实际的联系人内容,但希望这能让deviceready事件为您正常运行。好的,现在每当应用程序打开时都会显示就绪警报,但当我单击提交添加联系人时,什么也没有发生。似乎从未输入addContact方法?抱歉,我不小心用click而不是deviceready粘贴在顶行中。我在浏览器中测试时使用了click,因此在我修复它之前,您可能已经复制了它。将其更改回设备就绪状态。最大的问题可能是。。。您尚未包含PhoneGap javascript文件!!在我的回答中添加了更多内容请注意,我没有设置phonegap来测试实际的联系人内容,但希望这能让deviceready事件为您正常运行。好的,现在每当应用程序打开时都会显示就绪警报,但当我单击提交添加联系人时,什么也没有发生。似乎从未输入addContact方法?抱歉,我不小心用click而不是deviceready粘贴在顶行中。我在浏览器中测试时使用了click,因此在我修复它之前,您可能已经复制了它。将其更改回设备就绪状态。最大的问题可能是。。。您尚未包含PhoneGap javascript文件!!如果这对您有效,我会感到惊讶,因为您根本没有加载phonegap.js。因此,您的DeviceRady永远不会被任何phonegap api捕获。。。所以它除了产生一个javascript错误之外什么都不会做;然后你可能想编辑你的答案,并在你做的时候纠正bodylaod的拼写错误;如果这对您有效,我会感到惊讶,因为您根本没有加载phonegap.js。因此,您的DeviceRady永远不会被任何phonegap api捕获。。。所以它除了产生一个javascript错误之外什么都不会做;然后你可能想编辑你的答案,并在你做的时候纠正bodylaod的拼写错误;