我们有一个iOS应用程序,它使用UIWebView控件来显示网页。该网页使用JQuery显示jConfirm确认对话框。当用户按下取消按钮时,它不响应。 Javascript应该发布回发到我们的asp.net页面来处理取消。它适用于Safari / iPhone,Chrome / Android,甚至是Android / WEbview原生应用。但它不能在使用UIWebView的iPhone本机应用程序上运行。
以下是我们在按下取消时调用JConfirm和DoPostback的代码片段。 我们在JQuery 1.6.4上。有人知道这是JConfirm和UIWEbView控件的已知问题吗?谢谢,丹
function showCancelDialog() {
//set up the confirmation dialog
$.alerts.okButton = "Yes";
$.alerts.cancelButton = "No";
$.alerts.buttonStyle = "font-size:medium; border-bottom: 1px solid #666688; border-right: 1px solid #666688; border-left: 1px solid #eaeaea; border-top: 1px solid #eaeaea; background-color: #dCdBd6;";
$.alerts.overlayOpacity = 0.7;
//confirm to cancel or not
jConfirm('Your payment will be cancelled. <br> Continue to cancel?', 'Cancel Payment?', function (r) {
if (r) {
//they have pressed Yes.
//now force a server side post back on the asp.net Cancel button
__doPostBack($(cancelButton).attr('name'), '');
return true;
} else {
return false;
}
})
}
答案 0 :(得分:0)
更新:我在另一篇SO博客文章中找到了这个问题的答案。
UIWebview and IPhone content does not postback (ASP.NET Browser Capability issues)
简而言之,解决方案是设置@Page级别指令ClientTarget =“uplevel”,或者在页面加载中使用代码进行设置。
旁注,我无法弄清楚如何将ClientTarget放在web.config中以使其在网站范围内发生。如果有人说出来,请在此处发布解决方案。