由于我们的一些用户已升级到iOS7,我们发现在 out phonegap (cordova)应用程序中的某些页面似乎失败了。场景是这样的:
用户想要预订一份工作,因此他们点击预订,出现一个对话框,他们选择预订的小时数,然后点击预订。应用程序使用 AJAX 与我们的服务器对话,并返回一个结果。如果出现错误(例如他们无法预订此人,则应用程序会显示另一个对话框。但是,当我们尝试在此对话框上运行 JavaScript 时,只要它尝试通过$('#Warnings')
应用程序访问 div 就会停止运行。
任何人都可以提出为什么会发生这种情况以及发生了什么。(它适用于iOS6,我已经记录知道它在附加a之前已经转到li
,ul
我尝试更改我们将它移动到的事件,查看div是否存在(导致应用程序崩溃),移动JavaScript到页面底部。我的想法已经用完了!
我们正在运行JQuery-Mobile 1.3.2,JQuery 1.9。Append 似乎适用于所有其他页面,与我们在这里的方式相同。
if (Ps.Logic.Type.hasValue(logicResult.Warnings)) {
for (var f in logicResult.Warnings) {
//add to warnings list
Ps.File.Log("Diary_Logic_Error_Dialogue: Processing Warnings : (" + f + ") " + logicResult.Warnings[f], function () {
//code
});
$('#WarningsList').append("<li>" + logicResult.Warnings[f] + "</li>");
Ps.File.Log("Diary_Logic_Error_Dialogue: Processing Warnings : Added (" + f + ")", function () {
//code
});
}
Ps.File.Log("Diary_Logic_Error_Dialogue: Processing Warnings : Done", function () {
//code
});
} else {
Ps.File.Log("Diary_Logic_Error_Dialogue: Processing Warnings - No Value (Skipping)", function () {
//code
});
}
编辑:
基本上发生的事情是用户将工作放入一个时间段,然后他们会得到以下对话:
当用户单击“分配预订”时,客户端与服务器对话,如果有问题,服务器会检查所有内容,然后它应该显示以下对话框:
在 ios6 上,这完美运行,显示错误,用户可以继续或取消。但是,自从我们尝试显示此对话框(图 2 中的那个)时更新到 ios7 之后,一旦我们尝试执行一些编辑/附加项目到 DOM 的操作,它似乎就会停止处理页面。