5

第一篇文章 - 你好!我使用 fancybox ( Fancybox homepage ) 来显示模态窗口。我正在尝试在此 div 内显示一个带有 iFrame 的隐藏 div。效果很好。第二次点击链接时,它不会加载 iFrame(不是 404 错误,只是 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>
4

4 回答 4

4

有同样的问题。根据 Frode 的评估,它正在剥离 src 属性,我在我的 fancybox 调用中添加了“onClosed”回调,并且能够将其添加回:

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

function reloadIframe() {
    jQuery('#iframe_element').attr('src','http://example.com');
}
于 2012-01-10T21:08:53.600 回答
3

看起来 fancyboxiframe从 DOM 中提取元素并将其放入自己的容器中。然后,当您关闭花式框时,它会尝试将其插入原来的位置 - 但设法释放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()} );
}

显然不理想..我很想听到更熟悉的人插话。

于 2011-02-23T14:34:49.860 回答
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); 
        } 
    }); 
};
于 2012-08-16T10:58:13.403 回答
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);
        }
    });
});
于 2012-11-23T11:32:33.003 回答