j.Kleingeist: rekursive Schleife

Beitrag lesen

hi,

Ich suche nunmehr einen Schleifenalgorithmus mit dem ich alle iframe-Namen (.src) einsammeln kann.

zugriff auf die iframes würde ich über
document.getElementsByTagName("iframe")
versuchen (und diese collection dann per schleife durchlaufen).
und auf der nächsten ebene ersetzt du document dann halt durch die referenz auf das document im iframe.

function rekursiere_ueber_iframes(welches_dokument) {
   var iframes = welches_dokument.getElementsByTagName("iframe");

for(einIframe in iframes) {
      var scrInhalt = einIframe.src;
      rekursiere_ueber_iframes(einIframe.document);
   }
}

rekursiere_ueber_iframes(document);

ungetestet; nur grobe idee.
setzt natürlich (mindestens) voraus, dass alle dokumente fertig geladen sind, und das die same origin policy nicht verletzt wird.

gruß,
wahsaga

Danke,

Es hat noch etwas gebraucht doch so geht es:

function u_check_frames()
{function rekursiere_ueber_iframes(xxs)
    {var xs=xxs, iframes, i,nextScrInhalt, einIframe,k,sbase
     iframes = xs.frames;  //cc(iframes)
     sbase=xs
     if(xs.frames[0].frameElement)sbase=xs.frames[0].frameElement.MyPlatz  // gespeicherte document Referenz
     k=0;
     for(einIframe in iframes)
     {if(einIframe.indexOf("u_iframe")!= -1)
       {scrInhalt = sbase.getElementById(einIframe);alert("Frame: "+scrInhalt.src); // u_iframe <=Teil der id
        if( xs.frames[k].frames.length >0)
         {nextScrInhalt=xs.frames[k];
          rekursiere_ueber_iframes(nextScrInhalt);
         }
        ++k;
     }}}

rekursiere_ueber_iframes(document);
}
Gruß J.Kleingeist