如何知道iframe何时准备好

How to know when an iframe is ready?

本文关键字:准备好 何时 iframe 何知道      更新时间:2023-09-26

我在网页中有一个iframe,我想在它准备好后做点什么。我尝试了两种方法:

  • 在父页面中,我使用这个

    jQuery('#iframe').load(function() {
     //my code here
    });
    

这段代码将在iframe加载完成时执行(正如我所希望的),但因为我的iframe指向了另一个域,所以在这一点上,我无法访问它的内容(跨域问题)

  • 在iframe中,我使用这个:

     jQuery('body').ready(function() {
     });
    

这段代码是在iframe开始加载时执行的,这比我想要的要早得多,所以代码无法正常运行。

那么,当iframe完成加载并准备好进行DOM操作时,我如何执行代码呢?

我搜索发现easyXDM可能是解决方案,但我想知道是否存在更简单的解决方案。

谢谢。

不要使用jquery,它会让你的javascript知识混乱,

您可以使用以下代码

<script type="text/javascript">
    function show(){
        var iframe=document.getElementById('aa');
        var h=iframe.contentWindow.document.body.offsetHeight;
        alert(h)    
    }
</script>
</head>
<body>
<iframe id="aa" src="3.html" frameborder="0" scrolling="no" width="100%" height="200" onload="show()"></iframe>
</body>

由于您想知道iframe何时准备好,并且您想访问该iframe跨域的内容,我认为easyXDM是一个不错的选择。

您基本上可以实现这个示例,只需将代码添加到"onReady"方法中。