第一篇文章 - 你好!我使用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>
答案 0 :(得分:4)
有同样的问题。基于Frode的评估它正在剥离src属性,我在我的fancybox调用上添加了'onClosed'回调,并且能够将其添加回来:
jQuery('#iframe_element').fancybox({
'onClosed': reloadIframe
});
function reloadIframe() {
jQuery('#iframe_element').attr('src','http://example.com');
}
答案 1 :(得分: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()} );
}
显然不理想..我喜欢听到更熟悉的人。
答案 2 :(得分: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);
}
});
};
答案 3 :(得分: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);
}
});
});