ここで関連する質問を見てきましたが、少し異なる問題が発生しています。
ネストされた 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 ドキュメントはまったく同じドメインにあります。コンソールからすべてのフレームのコンテンツにアクセスできます。