Hallo,
top.frames.length gibt aber immer 2 (also eigentlich parent.frames.length) aus, auch wenn es tatsächlich 3 frames gibt (die 2 meines framesets und ein fremder)! Ist das normal, das diese JavaScript-eigenschaft einen falschen wert zurückgibt bzw. gibts ne möglichkeit, dieses problem zu lösen?
top.frames.length liefert 2 zurück, wenn in der Frame-Definition zwei Frames stehen, also z.B. "Menu" und "Haupt" - unabhängig davon, wie viele Frames in "Haupt" stehen. Du kannst aber beispielsweise auf den Namen der Frames prüfen, diese sollten nur bei Dir auftauchen.
Wenn ich mich richtig erinnere, wirft top.location.href eine Fehlermeldung aus, wenn die URL von einer anderen Domain kommt als das aufrufende Dokument (Deins). So kannst Du also z.B. mit
x = window.setTimeout("top.location.href=http://DeineURL",1000);
if (top.location.href == "http://DeineURL") window.clearTimeout(x);
eine relativ sichere Umgehung programmieren. In der zweiten Zeile solltest Du aber auch darauf achten, daß man Deine Homepage auch mit "/index.html" aufrufen kann, also solltest Du etwas mit indexOf und/oder substring rumspielen!
Cheatah
P.S.: Dieser Trick mit setTimeout ist mir gerade spontan eingefallen, ich weiß also nicht genau ob er funktioniert. Prüfe ihn also mit möglichst vielen Browsern!