1

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

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

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

此代码将在 iframe 完成加载时执行(如我所愿),但因为我的 iframe 指向另一个域,所以此时我无法访问其内容(跨域问题)

  • 在 iframe 内部,我使用这个:

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

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

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

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

谢谢你。

4

2 回答 2

0

不要使用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>
于 2012-02-28T03:00:01.960 回答
0

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

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

于 2012-03-12T12:20:55.913 回答