假设我正在创建一个像这样的动态iFrame:
$('body').prepend('<iframe id="e" src="/page.html"></iframe>');
现在我想等待这个iFrame完成加载,以便我可以访问它的源代码。 我可以这样做:
$('#e').load(function() {}
但是,如果“/page.html”上有图像或任何需要很长时间才能加载的内容,那么我只是等待什么,因为我只需要源代码。
所以我的问题是,是否有可能做这样的事情:
while not exists ($("#e").contents().find('#someid')) { //wait }
所以这只是等到我们的iFrame中存在'#someid'(意味着至少已完成加载的源代码)。
这可能吗?
答案 0 :(得分:1)
在主窗口中,您可以声明功能(让我们说iframeReady
):
function iframeReady() {
//your code
}
并将以下代码放在iframe中的body
标记的末尾:
<script>
parent.window.iframeReady();
</script>
因此,您可以通过parent
对象
因此parent.window.iframeReady
将在加载body
内容时完全调用,并且不会等到所有图像都加载
警告:它仅在父窗口和iframe具有相同域时才有效