2012-08-23 39 views
1

我们有一个使用UIWebView控件显示网页的iOS应用程序。该网页使用JQuery来显示jConfirm确认对话框。当用户按下取消按钮时,它不响应。 Javascript应该发布回我们的asp.net页面来处理取消。它适用于Safari/iPhone,Chrome/Android,甚至在Android/WEbview原生应用程序。但它不适用于使用UIWebView的iPhone本机应用程序。JQuery JConfirm不能在iOS上使用UIWebview

下面是我们调用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

更新:我在另一个SO博客条目找到了这个问题的答案。

UIWebview and IPhone content does not postback (ASP.NET Browser Capability issues)

概括地说,解决方案是设置@Page层次的指令ClientTarget =“uplevel”或代码做到这一点在页面加载的后面。

注意,我无法弄清楚如何将ClientTarget放在web.config中,以使其发生在网站范围内。如果有人解释清楚,请在这里发布解决方案。