iframe可以弹出一个Lightbox风格的盒子吗?

时间:2010-06-17 15:39:48

标签: html iframe lightbox

这个问题不是关于在灯箱内弹出iframe;相反,它是关于页面上的iframe,可以在包含 iframe的页面中启动自己的Lightbox风格的框。我认为这是不可能的,因为iframe包含其他URL的内容以及URL启动的任何Lightbox必须适合iframe。感谢。

7 个答案:

答案 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。