Javascript JQuery-等待嵌套的iFrame完成加载

Javascript JQuery-等待嵌套的iFrame完成加载,javascript,jquery,iframe,Javascript,Jquery,Iframe,今天我遇到了一个让我有些不安的问题。我正在为一个特定的基于web的应用程序编写一个Chrome扩展。网页是一个(包装器)iframe,在真实的页面中可以找到,但是在该iframe中有更多的iframe 为了确定我目前在应用程序中的位置,我需要读取一些数据,这些数据有两个iframe深。我已经找到了一种方法,可以通过以下方式获得我正在寻找的字符串: document.getElementById("firstiframe").contentWindow.document.getElementByI

今天我遇到了一个让我有些不安的问题。我正在为一个特定的基于web的应用程序编写一个Chrome扩展。网页是一个(包装器)iframe,在真实的页面中可以找到,但是在该iframe中有更多的iframe

为了确定我目前在应用程序中的位置,我需要读取一些数据,这些数据有两个iframe深。我已经找到了一种方法,可以通过以下方式获得我正在寻找的字符串:

document.getElementById("firstiframe").contentWindow.document.getElementById("secondiframe").contentWindow.document.getElementById("theelement").innerText;
这里的问题是,在执行时,所有需要的帧都必须存在。由于执行脚本后加载了
secondiframe
,因此在
getElementById(“secondiframe”)
处失败,因为它还不存在

在我看来,我需要耐心地等待第二个iframe加载,直到我执行搜索。在这里,我不能超过第一个iframe

$('#firstiframe').load(function() {
    $('#secondiframe').load(function() {
        console.log("We made it!");
    });
});
那没用,有人建议我找这样的东西:

$('#firstiframe').load(function() {
    $(this).contents().find('#secondiframe').load(function() {
        console.log("We made it!");
    });
});
然而,这既不是一个成功,也从来没有传递/匹配到第二帧


提前谢谢

加载第一个时,您说过第二个
iframe
不存在。 委托的处理人会处理这个问题

$('divAroundBothIframes').on('load', '#secondiframe', function() {
    console.log("We made it!");    
});
或者绕着那条线,再绕一圈


在这种情况下,我要做的是在父页面编写一个函数,并包含来自iframe内容的onload。您可以使用parent.functionName()在父窗口中调用该函数


在您的例子中,我建议在加载iframe时保持变量指向某一点。类似于isIFrame1Loaded和isIFrame2Loaded的内容。这些应通过从iFrame内部触发的onLoad函数进行更新。他们还应该检查是否设置了所有变量,如果设置了,则执行您的代码。

这一个仍然不起作用,根本无法通过。我不能用这样的东西吗<代码>$('#firstiframe').contentWindow.document.GetElementById('secondiframe').load@user3249751-Hmm,“根本不通过”是什么意思?检查我编辑过的答案,如果没有jsFiddle或其他东西,那么实现它会很麻烦。可以混合使用jQuery和vanilla Javascript,但这不能解决您的问题,您希望传递处理程序的对象在传递该处理程序时不存在,明白吗?