2014-03-30 111 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指向另一个页面? –