正在等待使用jQuery加载动态iFrame

正在等待使用jQuery加载动态iFrame,jquery,iframe,Jquery,Iframe,假设我正在创建一个动态iFrame,如下所示: $('body').prepend('<iframe id="e" src="/page.html"></iframe>'); 然而,如果“/page.html”上有一个图像或任何东西需要很长时间才能加载,那么我就什么也不等了,因为我需要的只是源代码 所以我的问题是,有没有可能这样做: while not exists ($("#e").contents().find('#someid')) { //wait } 因此,

假设我正在创建一个动态iFrame,如下所示:

$('body').prepend('<iframe id="e" src="/page.html"></iframe>');
然而,如果“/page.html”上有一个图像或任何东西需要很长时间才能加载,那么我就什么也不等了,因为我需要的只是源代码

所以我的问题是,有没有可能这样做:

while not exists ($("#e").contents().find('#someid')) { //wait }
因此,这只是等待iFrame中存在“#someid”(至少意味着源代码加载完成)


这可能吗?

在主窗口中,您可以声明函数(比如说
iframeredy
):

并将以下代码放在iframe内的
body
标记的末尾:

<script>
parent.window.iframeReady();
</script>

parent.window.iframeReady();
因此,您可以通过
parent
对象访问父窗口

因此,
parent.window.iframeReady
将在加载
body
内容时准确调用,并且不会等待所有图像加载完毕


注意事项:仅当父窗口和iframe具有相同的域时,它才起作用

尝试查看
$('#e').ready(function(){}
帮助。您好,谢谢,但它不能与动态iFrame一起工作。您好,谢谢,但我无法提前编辑iFrame页面,因为内容不同。@P.Henderson,如果您添加
parent.window.iframeReady();
body
标记的末尾,当所有内容可能都已加载时,它将执行。为了确保这一点,您可以在
setTimeout
中调用
iframeReady
(10毫秒)。或者您可以在iframe内部使用,但在IE8及更高版本中它将不起作用
function iframeReady() {
    //your code
}
<script>
parent.window.iframeReady();
</script>