birdman: Fehler in Opera beim Nachladen von Framesets

Hallo,

ich habe das JavaScript von Martin Wernecke (s.u.) aus den Feature Artikeln in meine Inhaltsseiten eingebaut, damit einzeln aufgerufene Inhaltsseiten automatisch das Frameset nachladen. Dies funktioniert auch prima bei Netscape und IE, nur Opera hängt sich auf. Habe dort alle Einstellungen überprüft, JavaScript und Frames (inkl. inline) sind aktiviert.
Wo liegt der Fehler?
Gruß Birdman

===========================================================
TEIL 1:

<head>
...
<SCRIPT language="JavaScript">
<!--
 function checkFrameset() {
  if(!parent.xyzVerweisframe)
   location.href="http://www.xy.de/unterverzeichnisXY/index.htm?" + location.pathname;
 }
//-->
</SCRIPT>
</head>
<body onLoad='checkFrameset()'>

Teil 2:
<head>
...
<SCRIPT language="JavaScript">
<!--
 function checkFramecall() {
  var Adressanhang=location.search;
  if(Adressanhang)
  frames.xyzHauptframe.location.href=Adressanhang.substring(1,Adressanhang.length);
 }
//-->
</SCRIPT>
</head>

<frameset cols="60,*" onLoad="checkFramecall()">
  <frame name="xyzVerweisframe" src="links.htm">
  <frame name="xyzHauptframe" src="start.htm">
</frameset>

  1. Hallo birdman,

    if(!parent.xyzVerweisframe)

    Verstehe ich nicht. Müsste AFAIK eigentlich "if (!parent)" heißen. Denn wenn der xyzVerweisframe nicht existiert, existiert ja normalerweise auch kein übergeordneter Frame. Dann würde "parent.xyzVerweisframe" natürlich einen Fehler erzeugen, da parent null ist und jede Adressierung von Eigenschaften von null falsch ist.

    <body onLoad='checkFrameset()'>

    Finde ich umständlich, da dann das Frameset erst nachgeladen wird, wenn die aufgerufene Seite vollständig geladen wurde. Besser wäre es IMHO, das Skript ohne Funktion in den Body zu packen.

    In SELFHTML steht zu location.search() folgendes: "Opera 5.12 zeigt im Protokoll file: den HTML-Quelltext einer Datei an, sobald diese einen Parameter erhält.". Wenn du dieses Skript also offline bei dir ausprobierst, wird es mit Opera 5.12 nicht funktionieren. Trotzdem sollte es im WWW klappen.

    Viel Erfolg,
    Robert