2014-03-30 141 views
1

我有一個頁面,我將動態創建一個iframe並將其附加到div。 該div將被附加到一個jQuery對話框。Iframe content not loading in jQuery Dialog

<div id="diviframe"></div> 
<script> 
var iFrame = $('<iframe id="thepage" width="450" height="400"></iframe>').appendTo("#diviframe"); 
    var iFrameDoc = iFrame[0].contentDocument || iFrame[0].contentWindow.document; 
    iFrameDoc.write('<p>Some useful html</p>'); 
    iFrameDoc.write('<p>Some useful stuff</p>'); 
    iFrameDoc.close(); 


    $("#diviframe").dialog({ 

     autoOpen: false, 
     modal: true, 
     height: 500, 
     width:500, 
     open: function(ev, ui) { 

    } 

    }); 

$("#diviframe").dialog('open'); 

iframe的內容時,它在jQuery的對話框打開不寫。 任何人都可以爲此提出解決方法嗎?

更新:

function test() { 
     var iFrame = $('<iframe id="thepage" width="500" height="500" src="http://stackoverflow.com"></iframe>').appendTo("#diviframe"); 
     var parent = "divparent"; 
     var iFrameDoc = iFrame[0].contentDocument || iFrame[0].contentWindow.document; 
     iFrameDoc.write('<p>Some useful html</p>'); 
     iFrameDoc.write('<p>Some useful stuff</p>'); 
     iFrameDoc.close();  
     return iFrame; 
    } 






    var $dialog; //Must be at the global scope 
    function dialog() {  
     alert(1); 
     $.get(test, {}, function(html) { 
      $dialog.html(html); 
      $dialog.dialog("open"); 
     }); 
    } 

    $(function() { 
     //Initialize (without showing it) 
     var $dialog = $('<div id="dialog" title=""></div>').dialog({ 
      autoOpen: false, 
      modal: true 
     }); 
    }); 
    dialog(); 

我嘗試了jQuery對話框加載,但它顯示了一些錯誤後動態調用一個函數。如何從jquery對話框加載一個函數?

回答

0

我不認爲你需要爲你正在做的事情使用iframe,除非你在發佈你的問題之前已經剝去了一些重要的細節。

您可以將您的內容直接追加到#diviframe,它會顯示得很好。

$("#diviframe").append("<p>Some useful html</p>"); 
$("#diviframe").append("<p>Some useful stuff</p>"); 

我想知道 - 你是否想在對話框中製作一個可滾動的面板?如果是這樣,你可以設置一個div的CSS來實現你需要的東西:

.myScrollableBox { 
    width: 450px; 
    height: 400px; 
    overflow: auto; 
    border: 1px solid #000; 
} 

您可能還需要一些填充補充,從而使文本不會對邊界硬卡紙。

+0

我需要使用iframe,因爲內容將加載到另一個域中。我只是給你提供一個樣本,而不是整個代碼,因爲這裏沒有任何意義。你可以找出爲什麼iframe內容沒有加載? – user1547670

+0

我認爲問題在於你正在動態修改文檔,但jQuery中的副本只是在外部iframe元素中進行。 –

+0

您是否嘗試將iframe指向另一個頁面? –