从其他域加载内容后,可以调整iFrame的大小
Possible to resize iFrame after loading contents from a different domain?
我希望在加载页面上的iFrame内容后调整其大小。不幸的是,iFrame中加载的内容来自不同的域。我尝试使用以下代码来调用父窗口中的函数,但它引发了安全错误:
<body onload="parent.document.someFunction(document.body.scrollHeight);">
有没有一种可靠的方法可以使用其他域的内容(我们可以访问这些域并可以FTP)来实现这一点,或者我需要告诉客户端他们必须在自己的域上镜像内容吗?
请参阅这篇文章和我的答案:从iframe 调用父窗口函数
这是可能的,但并不容易。你得花点功夫才能使它发挥作用。
我相信,因为您可以访问框架域和框架页域,所以您将能够使用document.domain-in-the-head技巧。
<script>
document.domain = "mydomain.com";
</script>
更新:
我可以检查以下内容吗?:
你把文档.domain
<script>
放在两页的开头了吗?两者是否具有完全相同的字符串,即两者都具有
"subdomain.mydomain.com"
还是都具有"mydomain.com"
?通常,您可以使用此选项来确保带边框的页面与父页面具有相同的文档域。从框架页调用父函数后,是否仍然会出现安全错误?
如果没有,这是我用来调整框架大小的函数。它位于镶框页面的首页。
window.ResizeFrame = function (newHeight) { if (window.parent && window.parent.document) { var $frame = $(window.parent.document).find("#frame-id"); if ($frame.length) { if (typeof (newHeight) === "number") { $frame.css("height", newHeight); } } } };
让我知道进展如何!
相关文章:
- Firefox:根据实际内容调整iframe的大小
- 如果iframe通过单击加载,则自动调整iframe大小无效
- 在内容刷新或更新时调整iframe的大小
- 我需要一种自动调整iframe大小的方法,无论我查到什么,它都不起作用
- 调整 iframe 的大小,以便在每次更改 src 时包装其内容
- 如何根据 iframe 的大小调整 iframe 内容的大小
- JavaScript调整iFrame大小-适用于Firefox/IE,但不适用于Chrome
- 如何在窗口调整大小时调整iframe的大小
- Javascript没有调整iframe的大小
- 我可以使用jQuery来调整iframe的大小以填充剩余的窗口空间吗
- 在跨域站点中动态调整iframe的大小
- 加载新内容时调整iframe的高度
- 根据提交单击动态调整 iFrame 的高度
- JavaScript 调整 iframe 的大小,但 iframe 中的元素具有相对大小
- 调整 iframe 的大小以适合多个页面上的内容
- 通过 JavaScript 调整 iFrame 内容的大小
- 根据 DIV 大小调整 iFrame 的大小
- 可以在不重新加载框架的情况下调整 iframe 的大小
- 动态调整 Iframe 大小以与 Chrome 配合使用
- 使用 js 调整 iframe 的大小在 https 时停止工作