gpt4 book ai didi

javascript - 跨域动态设置iframe高度

转载 作者:搜寻专家 更新时间:2023-10-31 21:47:37 26 4
gpt4 key购买 nike

我查了很多关于跨域 iframe 高度的例子,但没有一个能解决问题。

我在下面给出了一个简单的 HTML。我想根据内容的高度调整里面的 iframe 的大小。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


</head>

<body >
<table width="780" height="406" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#333333" style="border:1">
<tr>
<td valign="top"><table width="778" border="0" cellspacing="0" cellpadding="0">
</td>
</tr>
</table>


<iframe src="http://mywebapplication.com" width="100%" ></iframe

<table width="780" border="0" cellpadding="0" cellspacing="0" bgcolor="53575f">
<tr>
<td align="center" height="38"><span class="Footer">All Rights Reserved © ABC 2009-2012.


</td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>

我尝试过的

使用添加到 iframe 的第二个 javascript 文件将 postMessage 发送回父级。

包含 iframe 的 HTML 页面

  <iframe src="http://mywebapplication.com" width="100%" id="zino_iframe"></iframe>
<script type="text/javascript">
var zino_resize = function (event) {
alert("sds");
var zino_iframe = document.getElementById('zino_iframe');
if (event.origin !== "http://hrcraft.noviavia.com") {
return;
}
//alert(zino_iframe);
if (zino_iframe) {
alert(event.data);
zino_iframe.style.height = event.data + "px";
}
};
if (window.addEventListener) {
window.addEventListener("message", zino_resize, false);
} else if (window.attachEvent) {
window.attachEvent("onmessage", zino_resize);
}

window.addEventListener("message", myListener, false);

function myListener(event) {
if (event.origin !== "http://hrcraft.noviavia.com") {
return;
}
//do something
}

myweb应用的master页也增加了发送高度的功能。

我一直在关注这个例子

http://zinoui.com/blog/cross-domain-iframe-resize

最佳答案

尽管问题与解决 OP 自己的个人代码的问题有关。他们是一个久经考验的库,可用于解决将 iframe 调整为内容高度的问题。这个库处理跨域,所以我认为值得一提。

https://davidjbradshaw.github.io/iframe-resizer/

您将两个文件放在父级中,一个放在子级 (iframe) 中

在你的 parent 中:

<style>iframe{width:100%}</style>
<iframe src="http://anotherdomain.com/iframe.html" scrolling="no"></iframe>
<script>iFrameResize({log:true})</script>

在你的 child 中你只需添加这个文件:

iframeResizer.contentWindow.min.js

库负责调整大小和跨域。检查文档。

关于javascript - 跨域动态设置iframe高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33116766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com