繁体   English   中英

花式盒子第二次没有打开iFrame

[英]Fancy box not opening iFrame second time

第一篇文章 - 你好! 我使用fancybox( Fancybox主页 )来显示模态窗口。 我正试图在这个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>

有同样的问题。 基于Frode评估它正在剥离src属性,我在我的fancybox调用上添加了'onClosed'回调,并且能够将其添加回:

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

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

看起来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()} );
}

显然不理想..我喜欢听到更熟悉的人。

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); 
        } 
    }); 
};

这是我恢复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);
        }
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM