gpt4 book ai didi

javascript - 如何调整我无法控制的跨域 iFrame 的大小

转载 作者:行者123 更新时间:2023-11-28 00:11:14 25 4
gpt4 key购买 nike

有大量关于如何调整 iFrame 大小以适应非跨域或跨域但由开发人员控制的 URL 的内部内容的文章和问题。

但我无法找到如何调整我对其零控制的 iFrame 的大小,因此无法 postMessage 返回父级。

这可能吗?

即想象一下我的网站 mysite.com 正在尝试 iFrame CNN.com。如何调整 CNN iFrame 的大小以便显示 iFrame 的全部内容,而无需滚动 CNN iFrame。

编辑

由于 iFrame 是跨域的,由于安全限制,读取 iFrame 内容并根据内容高度重新调整大小的简单解决方案无法工作。例如,当尝试读取不同域上的 iFrame 内容时,Chrome 会给出此异常:

Uncaught SecurityError: Failed to read the 'contentDocument' property from > 'HTMLIFrameElement': Blocked a frame with origin "http://dev" from accessing a frame with origin "http://cnn.com". Protocols, domains, and ports must match.

因此,常见的解决方案是使 iFramed 内容与托管页面进行通信,如 here 所示。 。但是,由于我的案例中的 URL CNN.com 完全是第三方且不受我的控制,因此我无法遵循跨域解决方法。

最佳答案

根据我收到的评论,似乎可以肯定地说,从客户端/浏览器端调整跨域 iFrame 的大小是不可能的。

也许某些复杂的服务器端算法可以请求该页面并尝试给出有关大小的提示,但客户端无法执行任何操作。

关于javascript - 如何调整我无法控制的跨域 iFrame 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30856767/

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