2011-02-23 88 views
5

第一篇文章 - 你好!我使用fancybox(Fancybox homepage)来显示模态窗口。我试图显示一个隐藏的div与这个div内的iFrame。很棒。第二次点击链接时,它不会加载iFrame(不是404错误,只是iFrame中没有内容)。谁能帮忙?花式框第二次打开iFrame

重要的位:

<script type="text/javascript"> 
function openIframeLink() { 
    $.fancybox({ 
     'type'   : 'inline', 
     'href'   : '#data' 
    }); 
}; 
</script> 

和HTML:

<div id="hiddenElement"> 
    <iframe id="data" src="frames/frame4.php" width="100%" height="300"></iframe> 
</div> 
+0

看中框工作,它与乌尔URL问题:)时做u调用'openIframeLink()'你只需要花哨的盒子一旦BTW(我认为) – Val 2011-02-23 12:57:47

回答

3

它看起来像的fancybox提取从DOM元素iframe,并把它变成它自己的容器。然后,当您关闭fancybox时,它会尝试将其插回原来的位置 - 但会设法丢失src属性值。

fancybox人认可的打开iframe的方法似乎如下。

<a id="mylink" class="iframe" href="frames/frame4.php">mylink</a> 
<script type="text/javascript"> 
    $("#mylink").fancybox(); 
</script> 

一来规避它的方式,是克隆的IFRAME元素,即

function openIframeLink() { 
    $.fancybox({content: $('#data').clone()}); 
} 

显然不够理想。我很乐意听到有人在更熟悉的钟声。

+0

嗨!非常感谢。它没有完全按照我想要的(可能是我的错),但是你给我看到了足以解决问题的方法。 'function openIframeLink(){ \t/*在fancybox丢失之前抓取src */ \t theSrc = $(“#data”)。attr('src'); \t $ .fancybox({ \t \t '类型' \t \t \t: '内联', \t \t 'HREF': '#DATA', \t \t \t onClosed \t:函数(){ \t \t \t $( '#data')。attr('src',theSrc); \t \t} \t}); };' - 非常感谢你! – Djave 2011-02-24 11:39:38

4

有了这个同样的问题。基于弗罗德的评估,认为它是剥离src属性,我加入我的fancybox呼叫“onClosed”回调,并能够将其添加回:

jQuery('#iframe_element').fancybox({ 
    'onClosed': reloadIframe 
}); 

function reloadIframe() { 
    jQuery('#iframe_element').attr('src','http://example.com'); 
} 
0

的fancybox失去src属性。这里是我一直使用的解决方法自从

function openIframeLink() { 
    /* Grab the src before fancybox loses it */ 
    theSrc = $("#data").attr('src'); 
    $.fancybox({ 
     'type'  : 'inline', 
     'href'  : '#data', 
     onClosed  : function() 
     { 
      $('#data').attr('src', theSrc); 
     } 
    }); 
}; 
0

这是我恢复src属性的方式,无需事先知道元素。

可能会帮助别人..

$(".fancybox.iframe").each(function(){ 
    var target = $($(this).attr("href")); 
    var src = target.attr("src"); 
    $(this).fancybox({ 
     'type': "inline", 
     'content': target, 
     'onClosed': function(){ 
      target.attr("src", src); 
     } 
    }); 
}); 
相关问题