我在网页中有一个iframe,我想在准备就绪时做点什么。我试过两种方法:
在父页面中,我使用此
jQuery('#iframe').load(function() {
//my code here
});
这个代码将在iframe完成加载时执行(如我所愿),但因为我的iframe指向另一个域,所以此时我无法访问其内容(跨域问题)
在iframe中,我使用了这个:
jQuery('body').ready(function() {
});
当iframe开始加载时执行此代码,这比我想要的要早得多,因此代码无法正常运行。
因此,当iframe完成加载并准备好进行DOM操作时,我如何执行代码
我搜索并发现easyXDM可能是解决方案,但我想知道是否存在更简单的解决方案。
谢谢。
答案 0 :(得分:1)
下划线有一个方便的推迟方法,我用过这样的事情,试试:
$('#iframe').load(function() {
_.defer(function(){
//your code here
});
});
答案 1 :(得分: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>
答案 2 :(得分:0)
由于您想知道iframe何时准备好并且您想要从该iframe跨域访问内容,我认为easyXDM将是一个不错的选择。
您基本上可以实现this example,只需将代码添加到“onReady”方法。