我在这里读到,iframe在跨域内容方面存在局限性。但这是否意味着不允许从同一域加载另一个文件?我尝试使用此代码时未成功,但只有iframe源文件相同时才会生效,即。的index.html:
的index.html
<html>
<body>
<!-- re-loading itself works -->
<!-- iframe id="myFrame" width="640" height="480" src="index.html"></iframe-->
<iframe id="myFrame" width="640" height="480" src="anotherFile.html"></iframe>
<script type="text/javascript">
window.onload = function()
{
setTimeout(function()
{
iframeWin = document.getElementById("myFrame");
iframeWin.height = iframeWin.contentDocument.body.offsetHeight + "px";
}, 1000);
}
</script>
</body>
</html>
由于外部文件要求,我无法发布到jsFiddle。
编辑: anotherFile.html 的内容:
<html>
<body>
<p>Lorem Ipsum is simply dummy text<br>
of the printing and typesetting industry.<br>
Lorem Ipsum has been the industry's standard<br>
dummy text ever since the 1500s, when an...</p>
</body>
</html>
答案 0 :(得分:2)
您可以通过iframe的onload事件而非setTimeOut
来尝试此操作 <iframe id="myFrame" width="640" height="480" src="response.html" onload="myFunction()"></iframe>
<script type="text/javascript">
function myFunction(){
iframeWin = document.getElementById("myFrame");
iframeWin.height = iframeWin.contentDocument.body.offsetHeight + "px";
}
</script>
答案 1 :(得分:0)
解决!显然,问题在于Google Chrome中的安全设置:
此功能适用于FireFox和MSIE,如果从网络服务器运行,则适用于Chrome。