0

ここで関連する質問を見てきましたが、少し異なる問題が発生しています。

ネストされた iframe にまたがってアンカーを書き換えています。時には 3 または 4 個の iframe の深さがあります。

.load( function(){} ) を使用して、アンカーにアクセスする前にそれぞれがロードされるのを待ちます。これは、iframe の深さが 1 つだけの場合は正常に機能しますが、その後は失敗します。

コードは次のとおりです。

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 ドキュメントはまったく同じドメインにあります。コンソールからすべてのフレームのコンテンツにアクセスできます。

4

2 に答える 2

1

これは、onload イベントが書き込まれた時点で子 iframe が既に読み込まれているためと思われます。当たり前。

于 2010-07-21T22:57:28.240 に答える
0

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

foreach ループを追加し、これを使用してkeywordそれぞれのコンテンツをロードしました

于 2010-07-21T19:59:17.673 に答える