Web-TorMedlem sedan nov. 200011 794 inlägg
Skulle vilja ha en funktion som letar igenom alla frames på en sida efter en frame med ett visst namn och sedan returnerar den framen som ett objekt.
Det kan finnas nästlade framar på sidan.
Så här tänkte jag först men det funkar ju inte eftersom else-satsen skriver över objektet efter att man hittat rätt frame.
function call_getFrame(strFrame){
return (call_getFrame_recurse(window.top,strFrame));
}
function call_getFrame_recurse(objFrame,strFrame){
for(var i=0;i<objFrame.frames.length;i++){
if(objFrame.frames[i].name==strFrame){
return objFrame.frames[i];
}else{
call_getFrame_recurse(objFrame.frames[i],strFrame)
}
}
}
// *** Anrop
alert(call_getFrame("frame_content"));
Peter SMedlem sedan dec. 20025 484 inlägg
function call_getFrame(t, s){
for (var i = 0; i < t.frames.length; ++i){
if (t.frames[i].name == s){
return t.frames[i];
}
if (t.frames[i].length > 0){
call_getFrame(t.frames[i], s);
}
}
return null;
}
// Kom ihåg att kolla för null-värde i retur
var fr = null;
if (fr = call_getFrame(top, "frame_content")){
// ok, använd fr här
}
Ingen större skilland mot din kod med andra ord ;)
Web-TorMedlem sedan nov. 200011 794 inlägg
Jag får tillbaka null hur jag än gör?
Peter SMedlem sedan dec. 20025 484 inlägg
Jag har nu skapat ett ganska komplext ramsystem och testat funktionen. Resultatet är att den hittar samtliga ramar.
Web-TorMedlem sedan nov. 200011 794 inlägg
Med nästlade frames menar jag alltså att jag har frames som innehåller frames. Svårt att förklara men om du testas dom här sidorna förstår du nog.
Peter SMedlem sedan dec. 20025 484 inlägg
function call_getFrame(t, s){
for (var i = 0; i < t.frames.length; ++i){
if (t.frames[i].name == s){
return t.frames[i];
}
if (t.frames[i].length > 0){
return call_getFrame(t.frames[i], s);
}
}
return null;
}
Web-TorMedlem sedan nov. 200011 794 inlägg
Ahhh! Ett litet return som fattades. :)