在加载jQuery之后递归访问iframe

时间:2010-07-21 19:56:43

标签: jquery iframe recursion onload document-ready

我在这里查看了相关问题,但问题略有不同。

我在嵌套的iframe中重写锚点,有时候深度为3或4个iframe。

我使用.load(function(){})在访问锚之前等待每个加载。只在深入一个iframe时才能正常工作,但在此之后就失败了。

以下是代码:

function retarget_links( content ) {

    content.find("a").attr("href","#") ;

    var frame = content.find("iframe") ;
    if ( frame.length ) {
        frame.load(function() {
            retarget_links( frame.contents() ) ;
        })
    }
}

retarget_links( $("body") ) ;

它以递归方式查找所有iframe,但它只会为第一个执行.load回调。

任何想法为什么?

谢谢!

注意:所有iframe文档都在同一个域中 - 我可以通过控制台访问所有帧的内容。

2 个答案:

答案 0 :(得分:1)

看起来这是因为在编写onload事件时已经加载了子iframe。咄。

答案 1 :(得分:0)

var frame = content.find(“iframe”);     if(frame.length){         frame.each(function(){             this.load(function(){                 widget.retarget_links(this.contents());             })         });     }

我添加了一个foreach循环并使用了这个keyword来加载每个

的内容