2014-02-28 70 views
-1

我有一个iframe页面,在iframe页面我有一个img打开fancybox。这工作得很好,只是模式框的目标是iframe,只给整个页面的一部分一个黑色覆盖层,并将fancybox置于iframe而不是整个页面上。突破iframe与fancybox

这是代码:

<img src="/img/icons/calendar.png" class="fancybox" id="fancyCalendar" /> 

<script> 
    $j('#fancyCalendar').click(function() { 
     $j.fancybox.open({ 
      href: 'calendar.html', 
      type: 'iframe', 
      padding: 5, 
      width: 880, 
      height: 335 
     }); 
    }); 
</script> 

我已经试过这些东西,没有工作:

  • 添加目标到IMG
  • 使得在IMG的链接与目标
  • prepanding window.parent to fancybox.open prepending
  • window.parent.parent to fancybox.open

我不知道还有什么我可以试试,有没有人知道如何做到这一点?

+0

[Extend Fancybox inside a iFrame to outside](http://stackoverflow.com/questions/6528177/extend-fancybox-inside-an-iframe-to-outside) –

+0

可能重复[调用Fancybox in父母从iframe](http://stackoverflow.com/questions/8853727/call-fancybox-in-parent-from-iframe) – JFK

+0

如何使用fancybox v2.x http://stackoverflow.com/a/8855410/1055987包括演示 – JFK

回答

0

iframes是另一个浏览器内部的浏览器独立窗口,所以你不能做你想做的事情。

唯一的解决方法,即工作只有如果iframe与顶部框架位于相同的域,则调用父框架的fancybox函数。

的iframe中调用:

window.parent.openFancyBox(url, params...); 

您已在本地函数

function openFancyBox(url, ....) { 
    ... 
} 
-2

你有一个iframe的第一负载的内容,然后用插件打开的fancybox。