2012-08-23 77 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中,以使其發生在網站範圍內。如果有人解釋清楚,請在這裏發佈解決方案。