opera und frame.self
josef stebegg
- browser
Hallo.
Ich arbeite mit win 95/98 und muß feststellen das (nur) der Opera5. offensichtlich kein "frames.self" versteht.
Bei folgendem frameset und formular
-------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html><head><title>me8</title>
<meta content="josef stebegg" name="Author" />
</head>
<frameset rows="50%,50%">
<frame border="0" name="oben" src="phil8.html" frameborder="0" scrolling="yes" />
<frame border="0" name="unten" src="reg8.html" frameborder="0" scrolling="yes" />
<noframe></noframe></frameset>
</html>
--------------
<form><select onchange="frames.self.location=(this.options[this.selectedIndex].value)" size="1" name="Auswahl">
<option value="#"> - Auswahl -</option>
<option value="lit8.html"> Literatur</option>
etc.
--------------
bekomme ich diese Fehlermeldung:
name: TypeError
message: Value on left hand side of '.' is not convertible to Object: frames.self
Kennt vielleicht jemand das Problem und die Loesung?
gruesse
josef
hi,
ich denke, dass man deine function nicht auf frames.self anwenden kann, stattdessen solltest du vielleicht mal parent.self oder parent.frames[0] versuchen.
Fabian
Hallo.
Danke fuer Eure Hilfe.
Besonders fuer die detailierte Analyse von Sven.
Als mildernde Umstaende kann ich noch nachreichen, daß frames.self..... auch nn6 und nn4.7
"gefressen" haben.
josef
Hallo.
Ich arbeite mit win 95/98 und muß feststellen das (nur) der Opera5. offensichtlich kein "frames.self" versteht.
Was soll "frames.self" denn bloß sein?
"self" ist ein Objekt aus dem Hause "window" und bezieht sich auf das eigene Fenster. Man kann es auch weglassen.
"frames" ist ein Unterobjekt von "window", und für die einzelnen Frameobjekte zuständig. Die Tatsache "Unterobjekt" impliziert, daß es wohl "self.frames" gibst, aber nicht "frames.self" - das ist einfach die falsche Reihenfolge.
Schauen wir mal in den Code:
onchange="frames.self.location=(this.options[this.selectedIndex].value)"
Zwei Fehler:
1. Die bekannte Problematik, daß es frames.self nicht gibt. Entweder meinst du das Fenster, in dem sich das Javascript befindet, dann heißt es nur "self", oder du willst ein anderes Fenster des Framesets ansprechen, dann heißt es anders, aber garantiert nicht "self".
2. Man kann dem Objekt "location" keinen String zuweisen. Wenn du die Seite mit Javascript ändern willst, weise die neue URL an "location.href" zu! Sonst können alle Browser außer dem IE damit nichts anfangen.
Also: self.location.href=(this.options........)
- Sven Rautenberg