我在这里查看了相关问题,但问题略有不同。
我在嵌套的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文档都在同一个域中 - 我可以通过控制台访问所有帧的内容。
答案 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
来加载每个