0

我正在将图像的链接传递给 PHP 文件,以便根据此处的解决方案将所述图像返回到花哨的 iFrame

不幸的是,无论我通过什么尺寸的图像,iframe 的宽度都不会根据内容大小而改变,iframe 的宽度保持在 850 像素左右,但高度会发生变化。

我什至将图像样式设置为愚蠢的值,宽度:150 像素高度:150 像素,但 iframe 宽度保持在 850 像素,左上角有一个缩略图大小的图像。

试图结合jfk的解决方案,但 ifrme 要求相同的宽度。

我如何编写 iframe 代码以便根据图像大小设置高度和宽度?

$(document).on('click', '.Images', function(e) {
e.preventDefault();
var Href = 'GetImg.php?img=' + $(this).attr("href");
$.fancybox.open({
    href: Href,
    type: 'iframe',
    padding: 5
  });
});

​ 感谢冬青

4

3 回答 3

1

您可以设置花式框宽度。做这样的事情:

$.fancybox.open({
    href: Href,
    width: 500,
    type: 'iframe',
    padding: 5
  });
});
于 2012-08-24T17:15:50.327 回答
0

因为您使用的是 iframe,所以您有一个嵌套在父窗口中的子窗口。Javascript 安全性可防止父窗口在被 iframe 屏障分隔时直接访问子窗口的文档对象模型。快速的解决方案是更改您的幻想框属性,以便将弹出窗口视为内联 div 而不是 iframed 窗口。Fancybox 然后可以自动查询内联窗口的高度和宽度属性并自动调整大小。

但是,如果您需要通过 iframe 实现弹出窗口,那么您将希望将单独的窗口视为来自不同的域。在子窗口中,您设置了一个 postMessage(),其操作类似于将信息发布到另一台服务器的 api 调用。在父窗口中,您设置了一个侦听器,该侦听器将响应请求并根据它接收到的值进行操作。postMessage() 的 HTML5 规范将允许两个窗口以这种方式通信。您可以将 postMessage() 请求放在子窗口的 $(document).ready() 函数堆栈中,并将监听器放在 fancybox 调用的 onComplete() 函数堆栈中。

http://viget.com/extend/using-javascript-postmessage-to-talk-to-iframes

于 2013-01-08T21:39:33.293 回答
0

你有没有尝试给出宽度和高度参数?

http://fancybox.net/api

于 2012-08-24T17:15:56.353 回答