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