2012-10-02 166 views
1

我在我的頁面中有一個鏈接A會將用戶帶到頁面B.我希望頁面B彈出而不會影響我的頁面A,使用jQuery UI對話框如何使用窗口。開()函數(如:<a href="" onclick="window.open('abc.php','', 'width=100, height=100, location=no, menubar=no, status=no,toolbar=no, scrollbars=no, resizable=no'); return false"> ABC </a>
我有這個頁面答:如何使用jQuery UI對話框創建彈出窗口

<a href="abc.php">link to page B </a> 

我有這個頁面B:

<script> 
    $(function() { 
     //$("#dialog").dialog(); 
     $("dialog:ui-dialog").dialog("destroy"); 

     $("#dialog").dialog({ 
      height: 500, 
      width: 740, 
      modal: true 
      }); 
    }); 
    </script> 
<div id="dialog"> 
//code for form of page B 

</div> 

我的問題是內容的對話框內顯示但它不會彈出窗口,對話框只顯示在瀏覽器上窗口作爲對話框。基本上,頁面A被頁面B取代,但是我希望頁面B在用戶點擊頁面A上的鏈接時彈出。
任何人都知道該怎麼辦?非常感謝。

+0

只調用'DIV'作爲彈出不是整個頁面B. –

+0

您是否使用Phonegap?如果是這樣你可以使用Childbrowser phonegap插件來實現該功能,另請參閱http://stackoverflow.com/questions/5101665/opening-all-external-links-in-phongaps-childbrowser-using-jquery-mobile – Nelson

回答

4

您可以在pageA的JavaScript函數如下

function showUrlInDialog(url){ 
  var tag = $("<div></div>"); 
  $.ajax({ 
    url: url, 
    success: function(data) { 
      tag.html(data).dialog({modal: true}).dialog('open'); 
    } 
  }); 
} 

二的方式來加載頁面到IFRAME

function showUrlInDialog(url){ 
  var tag = $("<div></div>"); 
    tag.html('<iframe style="border: 0px; " src="' + url + '" width="100%" height="100%"></iframe>').dialog({modal: true}).dialog('open'); 
   
} 

現在調用這個函數在你的錨標記中,如下

<a href="#" onclick="showUrlInDialog('abc.php'); return false;">link to page B</a> 

在頁面B只保留您的表單或HTML代碼

<div> 
//code for form of page B 

</div> 
+0

thx很多。它的工作原理,但我有這個問題。提交表單後,它應該重新加載頁面B.但是頁面B不會在彈出窗口中重新加載,而是會在新的普通窗口中顯示。即使重新加載後如何使頁面B彈出窗口?非常感謝。 – ATZ

+1

請參閱編輯我的答案以解決您的問題。您需要將pageB加載到iframe中。 – GBD

+0

哇! thx很多 – ATZ