gpt4 book ai didi

Javascript在浏览器中运行,而不是在带有cordova的phonegap应用程序中运行

转载 作者:行者123 更新时间:2023-11-29 04:16:18 24 4
gpt4 key购买 nike

下面的代码用于需要将一些值保存到本地存储中的表单,我已经让它在浏览器中工作,但是当我在 xcode/cordova 中加载这个东西时,它不会触发该函数。我尝试调试,因此出现了很多很多警报,我在 DWCS6 中尝试使用实时 View ,但无济于事,我似乎无法让它运行。你能找出错误吗?

函数 saveSpanning() 有一个 if 循环,当它跳出 if-then-else 循环时,它不会在 xcode 模拟器中继续。在浏览器中它确实继续。

更新:它的作用是:有一个 slider ,它生成一个值,该值需要与其他两个值(由 JavaScript 生成)一起保存在本地存储中),即:日期和记录数。所以总共三个值。

脚本运行,使用jquery mobile,启动此功能的按钮有效,我使用document.ready而不是onBodyLoad,它基本上有效,但功能saveSpanning 只是不会在phonegap/ios/xcode 模拟器或设备中进一步进行。

function saveSpanning() {
alert("saveSpanning gestart!");
var inputSpanning = document.getElementById("valSliderSpanning").value;
alert("input spanning = " + inputSpanning);

//For Time
var mes_time = document.getElementById("tijdSpanning").value;
var mestimearr = mes_time.split(":");
//For Date
var mes_date = document.getElementById("datumSpanning").value;
var mesdatearr = mes_date.split("-");
var d = new Date();
var curr_date = d.getDate();
var curr_month = d.getMonth() + 1; //Months are zero based
var curr_year = d.getFullYear();
var curr_hours = d.getHours();
var curr_min = d.getMinutes();
var curr_sec = d.getSeconds();
//newDate = curr_year + "/" + curr_month + "/" + curr_date + " " + curr_hours + ":" + curr_min + ":" + curr_sec
// origienel opmaak datum newDate = mesdatearr[0] + "/" + mesdatearr[1] + "/" + mesdatearr[2] + " " + mestimearr[0] + ":" + mestimearr[1] + ":00";
newDate = mesdatearr[0] + "/" + mesdatearr[1] + "/" + mesdatearr[2];

alert("deze datum wordt opgelsage: " + newDate);

//var itemId = newDate.getTime(); //creates a unique id with the milliseconds since January 1, 1970
var itemId = "spanningKey";
var values = new Array();
values.push(newDate); //push each value into our values array
values.push(inputSpanning); //push each value into our values array
//alert(inputSpanning);

var spanningCountVal = localStorage.getItem('spanning_count');

//alert(spanningCountVal);
if (spanningCountVal == null) {
spanningCountVal = 1;

alert("spanningCountVal was null, en wordt dus nu 1: " + spanningCountVal);

}
else {
spanningCount = parseInt(spanningCountVal) + 1;
alert("zit nu in de else loop: " + spanningCount);

}

alert("uit de ifthenelseloop, spanningCount = " + spanningCount);

itemId = itemId + '-rec-' + spanningCount;
alert("itemid: " + itemId);
alert("spanningCountVal: " + spanningCount);


localStorage.setItem("spanning_count", spanningCount); //store the item in the database
localStorage.setItem(itemId, values.join("|")); //store the item in the database
alert("Successfully Saved.");
}


$(document).ready(function() {

$("#button").click(function() {
alert("hallo functie");
});

$("p").text("The DOM is now loaded and can be manipulated.");



$('#button2').click(function() {
alert('Button has been clicked');
});
$('#knopje').click(function() {
saveSpanning();
});
});​

最佳答案

document.ready 在所有 DOM 元素均已加载并可访问时被调用。在浏览器中,这通常是开始执行需要 DOM 准备就绪的代码的好时机。

但是,在 Phonegap/Cordova 中,在触发 document.ready 事件后会运行许多步骤,包括连接到调试控制台。

相反,您需要等待 deviceready用于了解phonegap/cordova何时完全加载并准备好执行的事件。在 $(document).on('ready') 内,您需要为 deviceready 添加一个事件监听器,它应该触发您的方法。

关于Javascript在浏览器中运行,而不是在带有cordova的phonegap应用程序中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13660613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com