这个问题不是关于在灯箱内弹出iframe;相反,它是关于页面上的iframe,可以在包含 iframe的页面中启动自己的Lightbox风格的框。我认为这是不可能的,因为iframe包含其他URL的内容以及URL启动的任何Lightbox必须适合iframe。感谢。
答案 0 :(得分:2)
如果两个帧位于不同的域上,则<iframe>
无法与其父帧进行交互。
答案 1 :(得分:1)
如果两个站点属于同一个域,您可以将灯箱的JS添加到主框架,并使用'parent.function'调用iframe内的函数
答案 2 :(得分:1)
试着看看fancybox。我知道这支持iframe,我总是在Lightbox上使用它,更可定制。我很确定它可以处理嵌套的iframe,但我可能是错的。值得一试的更少。
可以显示图片,HTML元素,SWF 电影,iframe和Ajax请求
页面底部有一些示例:http://fancybox.net/
答案 3 :(得分:1)
我不知道它是否在网上任何地方,但我看到Facebook发表关于向其他网站注入iframe以避免跨站点问题的问题的演示。值得一看。
答案 4 :(得分:1)
这是可能的,但前提是您可以控制远程服务器。有多种方法可以做到这一点但是为了快速启动你可以使用这个simple frame postman。
当您从框架中收到消息时(可能带有图像URL),您只需在主文档中打开一个灯箱对话框。
答案 5 :(得分:1)
一个对我有用的简单解决方法是在父窗口中初始化灯箱,然后创建一个空白占位符链接,以及更改href并单击占位符链接的函数:
在父窗口的页眉或页脚中:
<script type="text/javascript">
$(function () {
$('.lightbox').lightBox();
});
function image_preview(url)
{
$('#fakebox').attr('href',url);
$('#fakebox').trigger('click')
}
</script>
父窗口正文中的某处:
<a href="" class="lightbox" id="fakebox"></a>
所以在iframe中我调用父函数来启动fancybox:
<a href="JavaScript:void(0);" class="btn btn-tertiary btn-small" onClick="parent.image_preview('http://static8.depositphotos.com/1007989/1011/i/950/depositphotos_10118078-Grinning-Smiley.jpg')">Preview</a>
答案 6 :(得分:0)
我们面临同样的问题,我想一个可能的解决方案是来自iframe的window.open。