簡體   English   中英

Phonegap javascript警報不起作用?

[英]Phonegap javascript alerts not working?

我對phonegap和javascript非常陌生,我正在嘗試制作一個簡單的Contact Adder應用程序,但是由於某些原因,當我嘗試添加聯系人時什么也沒發生。 甚至沒有警報出現。 順便說一句,我正在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>

這段代碼對我有用:

<!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>

我在eclipse中使用android sdk進行了嘗試,並且在模擬器上收到了警報,添加新聯系人后,將其播種到聯系人中。 在嘗試此代碼之前,請注意腳本和樣式鏈接。 (重寫它,或下載最新的)

http://imageshack.us/a/img841/7938/b5x4.jpg

http://imageshack.us/a/img28/6060/9xfr.jpg

http://imageshack.us/a/img835/6729/yl8e.jpg

您的script標簽位於headbody標簽之間。 嘗試將其移動到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>

它應該起作用(對我來說,它起作用!)。 如果沒有,請檢查清單,也許您做錯了什么

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM