设置iframe大小的问题

时间:2014-07-16 08:51:07

标签: jquery iframe fancybox fancybox-2

我已尝试了很多方法在Fancybox 2.1.5中设置iframe大小,主要是从堆栈溢出的其他问题中获取的想法,但似乎没有任何效果。相反,在点击链接(动态生成)时,iframe会打开非常小的(300 x 150px)。我可以看到.fancybox-inner具有正确的宽度和高度,但实际的iframe没有没有宽度/高度属性。链接的目标始终是PDF,而不是HTML页面。

这是我的代码:

$(".homebox a.fancybox").click(function(e) {
        e.stopPropagation();
         $.fancybox({
            href: $(this).attr('href'),
            fitToView: false,
            autoSize: false,
            autoDimensions: false,
            width  : 600,
            height : 900,
            type   :'iframe'
         });
         e.preventDefault();
    });

任何想法都非常感激。 (注意:我使用e.stopPropagation(),因为a.fancybox链接实际上是另一个链接的子项。)

1 个答案:

答案 0 :(得分:0)

我的猜测是fancybox在iframe内容完全加载之前计算大小,因此尺寸较小。

尝试在您的脚本中将iframe preload设置添加到false,如:

$(".fancybox").on("click", function (e) {
    $.fancybox({
        href: this.href,
        fitToView: false,
        autoSize: false,
        // autoDimensions: false, // this is for fancybox v1.3.x
        width: 600,
        height: 900,
        type: 'iframe',
        iframe: {
            preload: false
        }
    });
    return false;
});

参见 JSFIDDLE

PS。我不建议在其他链接中嵌套链接。总会有更好的设计选项来满足您的需求。我的5¢