2011-02-23 86 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); 
     } 
    }); 
}); 
相關問題