Chrus: altes Thema in neuer Variante: Fehler bei top.location.href check im IE, u.a. Probleme

da ich zumindest auf meiner Startseite kontrollieren möchte, ob die URL im Browserfenster passt, habe ich mir folgendes Skript zurechtgelegt:

<script language="JavaScript">
  <!--
   if(top.location.href !="http://obermoser.cjb.net")
   /// bzw.    if(top.location.href + "" !="http://obermoser.cjb.net")     hab ich auch probiert
   top.location.href = "http://obermoser.cjb.net";
  //-->
</script>

(N.B.: ich kenn mich in Javascript nur soweit aus, daß ich "umherspiele" - keine Definitionskenntnis...)
leider gibt es da aber mehrere Probleme: es gibt da das allseits bekannte Skript mit der Überprüfung der vorhandenen Frames (entweder nach Anzahl oder nach Namen), welches für mich aber nicht in Frage kommt, da ich einen Redirector (cjb.net) benutze der ein frameset ohne namen benutzt, und ich obige Lösung eigentlich ganz elegant finde (wenn sie denn richtig funktionieren würde)

1.Problem: das skript zeigt nur wirkung wenn ich innerhalb der homepage mit target=_top auf das index-File linke, nur so wird dann obige url (http://obermoser.cjb.net) korrekt nachgeladen

2. Problem: MS IE 5 zeigt an das die Seite Fehler hat (done, but with errors on page), obwohl er alles ohne Murren ausführt. Ich weis nicht ob in Netscape 4.6 Fehlermeldungen nur unterdrückt werden, denn dort werden keine Fehler gezeigt (apropos: weiss eigentlich jemand wie man die Fehlermeldungen durch einen Eintrag in prefs.js aktiviert - hab da mal was gelesen, weiß aber nicht mehr wo...)

wenn mir hier jemand weiterhelfen kann, wäre ich sehr dankbar.
thx im voraus
chrus

  1. Hi,

    da ich zumindest auf meiner Startseite kontrollieren möchte, ob die URL im Browserfenster passt, habe ich mir folgendes Skript zurechtgelegt:

    if(top.location.href !="http://obermoser.cjb.net")

    leider gibt es da aber mehrere Probleme: es gibt da das allseits bekannte Skript mit der Überprüfung der vorhandenen Frames (entweder nach Anzahl oder nach Namen), welches für mich aber nicht in Frage kommt, da ich einen Redirector (cjb.net) benutze der ein frameset ohne namen benutzt, und ich obige Lösung eigentlich ganz elegant finde (wenn sie denn richtig funktionieren würde)

    da Du einen Redirector benutzt ist anzunehmen, daß Deine Seiten auf einer anderen Domain abgelegt sind als "obermoser.cjb.net". Damit hast Du leider keine Möglichkeit, top.location abzufragen, weil es ein "verbotener Zugriff auf eine fremde Domain" ist.

    1.Problem: das skript zeigt nur wirkung wenn ich innerhalb der homepage mit target=_top auf das index-File linke, nur so wird dann obige url (http://obermoser.cjb.net) korrekt nachgeladen

    Ja, weil nur dann top.location den selben Host hat wie self.location.

    1. Problem: MS IE 5 zeigt an das die Seite Fehler hat (done, but with errors on page), obwohl er alles ohne Murren ausführt. Ich weis nicht ob in Netscape 4.6 Fehlermeldungen nur unterdrückt werden, denn dort werden keine Fehler gezeigt

    Tippe in Netscape einfach "javascript:" in die Location-Zeile (ohne Anführungszeichen, mit Doppelpunkt), dann öffnet sich die JavaScript-Konsole mit allen Fehlermeldungen.

    (apropos: weiss eigentlich jemand wie man die Fehlermeldungen durch einen Eintrag in prefs.js aktiviert - hab da mal was gelesen, weiß aber nicht mehr wo...)

    Gibt es, weiß ich aber nicht genau. Ich finde die Konsole sehr praktisch (man kann z.B. auch direkt Befehle darin ausführen lassen), aber wenn Du sie partout nicht magst, kann ich noch mal suchen, ob ich die Einstellung irgendwo finde :-)

    Cheatah

    1. da Du einen Redirector benutzt ist anzunehmen, daß Deine Seiten auf einer anderen Domain abgelegt sind als "obermoser.cjb.net". Damit hast Du leider keine Möglichkeit, top.location abzufragen, weil es ein "verbotener Zugriff auf eine fremde Domain" ist.

      1.Problem: das skript zeigt nur wirkung wenn ich innerhalb der homepage mit target=_top auf das index-File linke, nur so wird dann obige url (http://obermoser.cjb.net) korrekt nachgeladen

      Ja, weil nur dann top.location den selben Host hat wie self.location.

      hmmm...schade......

      1. Problem: MS IE 5 zeigt an das die Seite Fehler hat (done, but with errors on page), obwohl er alles ohne Murren ausführt. Ich weis nicht ob in Netscape 4.6 Fehlermeldungen nur unterdrückt werden, denn dort werden keine Fehler gezeigt

      Tippe in Netscape einfach "javascript:" in die Location-Zeile (ohne Anführungszeichen, mit Doppelpunkt), dann öffnet sich die JavaScript-Konsole mit allen Fehlermeldungen.

      (apropos: weiss eigentlich jemand wie man die Fehlermeldungen durch einen Eintrag in prefs.js aktiviert - hab da mal was gelesen, weiß aber nicht mehr wo...)

      Gibt es, weiß ich aber nicht genau. Ich finde die Konsole sehr praktisch (man kann z.B. auch direkt Befehle darin ausführen lassen), aber wenn Du sie partout nicht magst, kann ich noch mal suchen, ob ich die Einstellung irgendwo finde :-)

      nein nicht nötig, so wie dus machst ists wirklich feiner...

      danke für deine schnelle hilfe - allerdings weiß ich jetzt nicht ob ich das skript so lasse (da es in 4er Browsern ja seinen Dienst halbwegs tut), oder ob ich es entferne und die unschöne lange originalurl oben zulasse

      hmmmm...eine eigene domain wär halt doch das Beste....

      cu
      chrus

    2. Hallo,

      (apropos: weiss eigentlich jemand wie man die Fehlermeldungen durch einen Eintrag in prefs.js aktiviert - hab da mal was gelesen, weiß aber nicht mehr wo...)

      Gibt es, weiß ich aber nicht genau. Ich finde die Konsole sehr praktisch

      Ich auch.
      Aber wenn jemand es lieber anders haben moechte:
      http://developer.netscape.com/docs/technote/javascript/jsconsole.html
      http://developer.netscape.com:80/docs/manuals/js/client/jsguide/console.htm#1039624

      Christine

  2. leider gibt es da aber mehrere Probleme: es gibt da das allseits bekannte Skript mit der Überprüfung der vorhandenen Frames (entweder nach Anzahl oder nach Namen), welches für mich aber nicht in Frage kommt, da ich einen Redirector (cjb.net) benutze der ein frameset ohne namen benutzt, und ich obige Lösung eigentlich ganz elegant finde (wenn sie denn richtig funktionieren würde)

    Probier's doch einfach mal mit self.name:
    Im Frameset <FRAME SRC="xyz.html" NAME="meinframe"> verwenden, und dann in JavaScript z.B.
    if (self.name!="meinframe") {
        document.write('Bitte <a href="http://obermoser.cbj.net">von der Startseite aus</a> aufrufen!<br>');
    }

    (die automatischen Reloads find' ich furchtbar, wenn ich mir mal 'ne Seite ohne Frame-Umgebung anschauen will)

    Ciao,
    Mirko