在 jQuery UI 对话框中以编程方式创建的 iframe 的大小

Posted

技术标签:

【中文标题】在 jQuery UI 对话框中以编程方式创建的 iframe 的大小【英文标题】:Size programatically created iframe within jQuery UI dialog 【发布时间】:2017-02-11 14:32:05 【问题描述】:

我有一个似乎无法解决的问题,我想要一些建议。

所以,我在 JS 中有一个 URL。

目的是打开一个 jQueryUI 对话框,其中包含一个包含该 URL 的 iFrame。

对话框应尽可能小以适应 iFrame 内容而无需滚动。

我在另一个问题 (Adjust width height of iframe to fit with content in it) 中读到了一些内容,建议:

iframe = iframe[0];
iframe.width  = iframe.contentWindow.document.body.scrollWidth;
iframe.height = iframe.contentWindow.document.body.scrollHeight;

但我无法让它工作。

确实,在创建对话框之前 iFrame 内容不存在,到那时为时已晚,更改 iframe 大小不会改变对话框大小。

这是我在这个问题上的进展。

https://jsfiddle.net/587mj6oy/

非常感谢您的帮助,

马克西姆

【问题讨论】:

都在同一个域中 【参考方案1】:

您可以使用 css 设置 iframe 的高度和宽度。图片是动态的还是静态的?

iframe height:300px;width:300px;

【讨论】:

那太容易了!基本上就是一张有一定行数的表格,在开框之前我无法知道行数。【参考方案2】:

试试这个:

var img = new Image();
img.src = input_link;

img.onload = function() 
   iframe.width(this.width);
   iframe.height(this.height);

【讨论】:

首先,是否需要加载图片并获取之后的尺寸。

以上是关于在 jQuery UI 对话框中以编程方式创建的 iframe 的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Vue 3 中以编程方式创建组件实例?

多个ListViews在android中以编程方式创建

如何在 ios 中以编程方式添加约束

无法在 setTimeout 回调中以编程方式打开 Vuetify 对话框

在 IOS 中以编程方式设置动作侦听器

如何在android中以编程方式启用位置访问?