Alexander Foken: seite in über-übergeordnetem frameset laden

Beitrag lesen

Moin Moin !

aber was hast du gemeint, mit "eval() möchtest du nicht benutzen? was ist falsch daran, oder besser, was soll ich stattdessen verwenden? an einer anderen stelle funktionierts problemlos so..

Eval ist in den meisten Fällen absolut unnötig und immer ein Performance-Killer.

In Deinem Fall:

Alt:

function ZweiFrames(URI1,F1,URI2,F2) {
 Frame1=eval("parent."+F1);
 Frame2=eval("parent."+F2);
 Frame1.location.href = URI1;
 Frame2.location.href = URI2;
}

Neu:

function ZweiFrames(URI1,F1,URI2,F2)
{
 parent.frames[F1].location.href=URI1;
 parent.frames[F2].location.href=URI2;
}

Nebenbei hat der neue Code den Vorteil, auch mit illegalen Frame-Namen klarzukommen. Natürlich darf man ein Frame nicht "close()" nennen. Es geht aber trotzdem oft. Dein eval() schließt dann stumpf und dumm den parent (denn Du machst eval("parent.close()")), während die saubere Lösung über das assoziative Array frames[] auch dann noch funktioniert (parent.frames["close()"].location.href=URI1).

Außerdem: http://aktuell.de.selfhtml.org/artikel/javascript/oomodell/index.htm -- wenn ich mich recht erinnere, fällt CK in dem Artikel kein einziger Grund mehr ein, eval() zu benutzen. Es geht alles ohne eval().

Alexander

--
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
Für eine bessere Übersichtsdarstellung des Forums: http://cforum.teamone.de/phpbt/bug.php?op=show&bugid=103&pos=2