Javascript 如何知道iframe何时准备就绪?

Javascript 如何知道iframe何时准备就绪?,javascript,jquery,iframe,cross-domain,domready,Javascript,Jquery,Iframe,Cross Domain,Domready,我在网页中有一个iframe,我想在它准备好的时候做点什么。我试过两种方法: 在父页面中,我使用 jQuery('#iframe').load(function() { //my code here }); 这段代码将在iframe加载完成时执行(正如我所希望的),但因为我的iframe指向另一个域,所以此时,我无法访问它的内容(跨域问题) 在iframe中,我使用以下内容: jQuery('body').ready(function() { }); 这段代码是在ifram

我在网页中有一个iframe,我想在它准备好的时候做点什么。我试过两种方法:

  • 在父页面中,我使用

    jQuery('#iframe').load(function() {
     //my code here
    });
    
这段代码将在iframe加载完成时执行(正如我所希望的),但因为我的iframe指向另一个域,所以此时,我无法访问它的内容(跨域问题)

  • 在iframe中,我使用以下内容:

     jQuery('body').ready(function() {
     });
    
这段代码是在iframe开始加载时执行的,这比我想要的要早得多,因此代码无法正常工作

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

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


谢谢。

下划线有一种简便的延迟方法,我在处理类似的事情时使用过,请尝试:

$('#iframe').load(function() { 
    _.defer(function(){
        //your code here 
    });
});

下划线有一个简便的延迟方法,我在处理类似的事情时使用过,请尝试:

$('#iframe').load(function() { 
    _.defer(function(){
        //your code here 
    });
});

不要使用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>

函数show(){
var iframe=document.getElementById('aa');
var h=iframe.contentWindow.document.body.offsetHeight;
警报(h)
}

不要使用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>

函数show(){
var iframe=document.getElementById('aa');
var h=iframe.contentWindow.document.body.offsetHeight;
警报(h)
}

由于您想知道iframe何时准备就绪,并且希望跨域访问iframe中的内容,因此我认为easyXDM将是一个不错的选择


基本上,您可以实现,只需将代码添加到“onReady”方法中。

因为您想知道iframe何时准备就绪,并且希望从iframe跨域访问内容,我认为easyXDM将是一个不错的选择


您基本上可以实现,只需将代码添加到“onReady”方法。

因为它是跨域的,除非您在浏览器中禁用跨域策略,否则它永远不会准备好进行DOM操作。我有点困惑<代码>$(函数(){})在iframe中应该工作得很好。无论如何,您都不能从父文档对其进行操作。所以它应该已经可以使用你所拥有的了。因为它是跨域的,除非你在浏览器中禁用跨域策略,否则它永远不会准备好进行DOM操作。我有点困惑<代码>$(函数(){})在iframe中应该工作得很好。无论如何,您都不能从父文档对其进行操作。因此,它应该已经可以与您现有的内容一起使用了。
\uu.defer
在做什么?为什么它在这种情况下有用?\udefer在代码执行之前给iframe内容页一个先加载的机会。它不能确保内容页将首先加载,它为您赢得了一点时间。什么是
.defer
以及它在这种情况下有什么帮助?\udefer在代码执行之前给iframe内容页一个先加载的机会。这并不能确保内容页面首先加载,它为你赢得了一点时间。。。无论是否使用jQuery,您都无法从另一个域访问iframe的内容。。。无论是否使用jQuery,都无法从另一个域访问iframe的内容。