我尝试了一些解决方案,但没有成功。我想知道是否有最好的解决方案以及易于遵循的教程。
最佳答案
你有三种选择:
1。使用 iFrame-resizer
这是一个简单的库,用于根据内容调整 iFrame 的大小。它使用 PostMessage 和 MutationObserver API,支持 IE8-10。它还为内容页面提供选项,以请求包含的 iFrame 具有特定大小,并且还可以在您完成后关闭 iFrame。
https://github.com/davidjbradshaw/iframe-resizer
2。使用 Easy XDM(PostMessage + Flash 组合)
Easy XDM 使用一系列技巧在许多浏览器的不同窗口之间实现跨域通信,并且有一些使用它来调整 iframe 大小的示例:
http://easyxdm.net/wp/2010/03/17/resize-iframe-based-on-content/
http://kinsey.no/blog/index.php/2010/02/19/resizing-iframes-using-easyxdm/
Easy XDM 通过使用 PostMessage 工作在现代浏览器和基于 Flash 的解决方案上作为旧浏览器的后备。
另见 this thread on Stackoverflow (还有其他的,这是一个常见的问题)。另外,Facebook would seem to use a similar approach .
3。通过服务器通信
另一种选择是将 iframe 高度发送到您的服务器,然后使用 JSONP 从父网页从该服务器进行轮询(或者如果可能,使用长轮询)。
关于iframe - 是否有有效的跨域 iframe 高度自动调整器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21667776/