Fancybox - 如何更改iframe的内容?

时间:2012-11-10 13:02:28

标签: javascript jquery iframe fancybox frame

我需要在 iframe fancybox窗口中设置或更新自定义HTML代码。 那我怎么能这样做?! 'content'选项不起作用! 在localhost上测试。

  $("test").fancybox({
  'width'    : 300,
  'height'   : 300,
        'autoScale'      : false,
        'type' : 'iframe',
        'content' : '<H5> It`s does not work</h5>'
 });

如果无法更改跨域iframe的内容(如我的情况),请告诉我如何在同一个域中执行此操作。 例如,我们在 http://localhost/page1.html 和iframe链接到 http://localhost/page2.html

1 个答案:

答案 0 :(得分:2)

当fancybox-iframe打开时,您可以使用$('.fancybox-iframe')访问iframe元素。

如果iframe中的文档位于同一个域中,您可以使用jQuery更改内容:

$('body',$('.fancybox-iframe').contents()).html('new content');

当fancybox-iframe尚未打开时,您可以在afterLoad-callback中执行相同操作:

$("test").fancybox({
  'width'    : 300,
  'height'   : 300,
        'autoScale'      : false,
        'type' : 'iframe',
        'href':'page2.html',
        afterLoad:function(){$('body',$('.fancybox-iframe').contents())
                              .html('new content');}
 });

是的:无法更改跨域iframe的内容(在这种情况下,您只能在iframe中加载一个全新的文档)。