javascript - 无论加载什么页面都自动调整 iframe 的大小

标签 javascript iframe

我有一个包含 iframe 的页面。在 iframe 中,人们可以单独导航(提交表单、我的帐户等)。这样做时,iframe 大小会在每个新的 iframe 页面上发生变化。问题是我已将单个 iframe ID 设置为自动调整大小。另一个问题是,在加载一些 iframe 之后,例如注册表格,它有一些上传照片的选项,例如,当点击它时它会扩展 iframe 的长度,所以一般的自动大小将不起作用 - 无论如何我的脚本可以处理这个 - 。我可以在所有 iframe 页面中插入我的 iframe 脚本,但是父页面如何识别每个 iframe 以自动调整它的大小?

父页面中的代码(通过 ID 自动调整单个 iframe 页面的大小):

<script>
function alertsize(pixels){
pixels+=0;
document.getElementById('myiframe').style.height=pixels+"px";
}
</script>

可以修改以上脚本以应用于 iframe 中加载的任何 iframe 页面吗?

iframe 脚本:

<script type="text/javascript">
var myHeight = 0;

setInterval(function(){
if(myHeight != document.body.scrollHeight){
    myHeight = document.body.scrollHeight;
    parent.alertsize(myHeight);
}
},500);
</script>

内嵌框架:

<iframe id="myiframe" src="../../data/my-account" name="myiframe" width="100%" height="100%" scrolling="no" frameborder="0"></iframe>

最佳答案

您可以使用top 来引用父框架,它将引用顶部窗口对象。

top.alertsize(myHeight)

 +-----------------------+
 | top                   |
 |                       |
 | +------------------+  |
 | | iframe           |  |
 | +------------------+  |
 |                       |
 | +------------------+  |
 | | iframe           |  |
 | +------------------+  |
 +-----------------------+

关于javascript - 无论加载什么页面都自动调整 iframe 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15557443/

相关文章:

javascript - 获取当前文档地址(firefox 扩展)

javascript - AWS Lambda API 问题 "Error: Runtime exited with error: exit status 129"

javascript - 本地存储可以存储整个页面吗

javascript - 无法摆脱在照片库中保存缩略图的垂直滚动条

javascript - async.waterfall 和 child_process.execSync 有什么区别?

javascript - jQuery 添加/删除类到非同级 DIV ID?

ios - (响应)表格宽度不适合 ios safari 上 iframe 内的容器

php - 计算最近城市的最有效方法(来自白名单)

javascript - 指针事件为 null 的元素上的“单击”(或替代方法)

javascript - 触发从 iframe 到父文档的自定义事件