Hallo auch,
erst mal herzlichen Glückwunsch, meine Seiten fand noch nie einer so interessant dass er sie klauen und in seinem Frame anzeigen wollte ;-). Nee, ernsthaft, Seitenklau durch Frames ist eine gemeine Sache, aber eine Lösung die ohne JavaScript funktioniert gibt es meines Wissens dafür nicht, außer den Betreiber der betreffenden Seite ansprechen.
Zu deinem Code:
function checkHOME() {
var heim=false;
try { if (top.location.host.indexOf("domain.tld") >0) throw "zuhause"; }catch (check) { if (check=="zuhause") { heim=true; if(top==self) location.href="index.htm"; return; } }
finally { if (heim==true) return; else top.location=self.location; }
}
Dass ist mit try und catch eigentlich sehr umständlich formuliert. Ich würde dass eher so schreiben:
function checkHOME()
{
if (top.location.host.indexOf("domain.tld") >0)
{
if (top == self)
location.href="index.htm";
}
else
{
top.location = self.location;
}
}
Wie die geschweiften Klammern sitzen ist Geschmacksfrage, aber diese Lösung kommt mit zwei statt vier if-Abfragen, keiner Zwischenvariablen und ohne try, catch und finally (die für so etwas hier sowieso nicht gedacht sind, sondernd für Fehlerbehandlung) aus.
Aber ich habe mir dass jetzt nur so schnell mal ausgedacht, ich habe das nicht getestet, auf keinem Browser und ich kann da für nichts garantieren. Die Lösung, die du da jetzt hast, könnte aber mit älteren Browsern (Netscape/Internet Explorer 4.x und früher) nicht funktionieren, da diese noch keine Fehlerbehandlung mit try und catch kennen.
Ich hoffe, ich konnte trotzdem helfen
Mfg
Cochrane