我知道这个问题很多,但是当我无法访问 IFRAME 显示的实际页面时,如何设置跨域 iframe 的动态高度?
问问题
2763 次
4 回答
3
你不能。无法从框架外部知道框架中文档的高度是多少,因为有关文档的所有信息都受到第三方站点的保护。
于 2012-04-11T12:59:18.510 回答
0
如果您有权在父页面和 iframe 页面上添加 javascript,则可以将其添加到两者:
document.domain = 'mydomain.com';
这样可以避免跨域限制,并且可以通过嗅探高度来更改父页面中的 iframe 高度
于 2012-04-11T12:50:23.947 回答
0
必须通过您自己的服务器代理页面(至少一次)
<?php
$homepage = file_get_contents('http://www.megaupload.com');
echo $homepage;
?>
<script>etc</script>
于 2012-04-12T10:14:17.020 回答
0
我也遇到了这个问题,但我终于得到了解决方案:
将此代码放入<head>
:
<script type="text/javascript">
function resizeCrossDomainIframe(id, other_domain) {
var iframe = document.getElementById(id);
window.addEventListener('message', function(event) {
if (event.origin !== other_domain) return; // only accept messages from the specified domain
if (isNaN(event.data)) return; // only accept something which can be parsed as a number
var height = parseInt(event.data) + 0; // add some extra height to avoid scrollbar
iframe.height = height + "px";
}, false);
};
</script>
然后,将此代码用于 iframe:
<iframe src='http://www.example.com/my-iframe/' frameborder="0" id="my_iframe" onload="resizeCrossDomainIframe('my_iframe', 'http://www.example.com');">
于 2014-01-25T16:24:02.143 回答