FRAMES: leeres Fenster läst sich nicht ansprechen
Viktor
- html
Jetzt wag ich mich doch in die Höhle des Löwen *gg*. Ich wurschtel gerade ein wenig mit JavaScript herum und da ist mir was komisches bei den Frames aufgefallen. Ich def. ein Frameset und nenne das untere Fenster ----> anzeige
Beim Start des Framesets lade ich aber keine HTML-Seite in dieses Framefenster (anzeige), sondern erst über einen Link, der sich auf dem anderen Framefenster befindet, wird (anzeige) angesprochen................ dachte ich zumindest, aber Pustekuchen.
Sag ich:
html>
<head>
<title></title>
</head>
<!-- frames -->
<frameset rows="36%,*">
<frame name="oben" src="change_neu.htm">
<frame name="anzeige" src=""> <! oder: <frame name="anzeige"> ist egal>
</frameset>
<body></body>
</html>
so läst sich über einen Link in dem Fenster (oben) KEINE Seite in das Framefenster (anzeige) laden. Erst wenn ich eine Startseite in dem Fenster lade, dann geht es.
Ist das normal????
Der Link sieht folgendermaßen aus:
<a href="unterlink.html" target="anzeige">LINK</a>
Gruß
Viktor
PS: Beispiel findet ihr auf http://134.2.52.70/viktor/
PS²: äh, wenn's wichtig ist, ich hab NC 4.51 D
Hallo Viktor,
bei mir geht es unter NS3.0 und NS4.5,
allerdings enthält das untere Frame erwartungsgemäß erstmal:
Verzeichnis-Liste von /C|/VIKTOR/test
Verzeichnis höherer Stufe abrufen
change_neu.bak 121 bytes Tue Mar 30 15:18:30 1999
change_neu.htm 122 bytes Tue Mar 30 15:19:20 1999 Hypertext Markup Language
test.htm 269 bytes Tue Mar 30 15:17:06 1999 Hypertext Markup Language
unterlink.html 97 bytes Tue Mar 30 15:20:02 1999 Hypertext Markup Language
Wenn ich die von Dir angegebene Location aufrufe und
den Link anklicke, dann geht Dein unterlink in einem neuen
Fenster auf.
Ich habe versuchsweise mal ein empty.htm im Frameset
als src angegeben und dann klappt es so, wie ich Deine
Absicht verstanden habe.
Zunächst war ich jedoch auf die unterschiedliche
Endung .htm <=> .html reingefallen.
Klaus
Hi Klaus,
Wenn ich die von Dir angegebene Location aufrufe und
den Link anklicke, dann geht Dein unterlink in einem neuen
Fenster auf.
Genau, das ist ja das komische. Das untere Fenster hat ja einen Namen, da sollte es ja egal sein, ob ich zu Anfangs eine Seite lade oder nicht.
Ich habe versuchsweise mal ein empty.htm im Frameset
als src angegeben und dann klappt es so, wie ich Deine
Absicht verstanden habe.
Ja, also ich hab ja geschrieben, das ich rumwurschtel. Ich hab nicht die absicht, beim laden eines Frames ein Fenster leer zu lassen. Wäre ja auch blöde. Ich wunder mich nur, das das nicht geht und hätte gerne gewust, wiso nicht. Ich wollte eigentlichnur das JavaScript vom Knut ausprobieren ( was vor lauter wurschtelei auch nimmer geht *lach*)
Zunächst war ich jedoch auf die unterschiedliche
Endung .htm <=> .html reingefallen.
Äh :o) ja, das liegt daran, das ich momentan mit mehreren HTML-Progis rumhantiere und da die Seiten eh nur Testseiten sind, isses mir im Moment egal. Meine endgültigen HTML-Seiten haben immer die Endung HTML. Auch der Webserver ist ein reiner Wurschtelserver.
Gruß
Viktor
Hallo Viktor,
Ja, also ich hab ja geschrieben, das ich rumwurschtel.
Ich hab nicht die absicht, beim laden eines Frames ein Fenster leer zu lassen.
Wäre ja auch blöde.
ist doch kein Beinbruch (aber rund 100 bytes) und schafft definierte Verhältnisse.
Im Übrigen ist ein undefiniert definiertes Frame ja auch ein leeres Frame.
<html>
<head>
<title>empty</title>
</head>
<body><!-- sinnvollerweise noch Hintergrundfarbe -->
</body>
</html>
Klaus
Hallo Viktor,
bei mir geht es unter NS3.0 und NS4.5,
allerdings enthält das untere Frame erwartungsgemäß erstmal:Verzeichnis-Liste von /C|/VIKTOR/test
Verzeichnis höherer Stufe abrufen
change_neu.bak 121 bytes Tue Mar 30 15:18:30 1999
change_neu.htm 122 bytes Tue Mar 30 15:19:20 1999 Hypertext Markup Language
test.htm 269 bytes Tue Mar 30 15:17:06 1999 Hypertext Markup Language
unterlink.html 97 bytes Tue Mar 30 15:20:02 1999 Hypertext Markup LanguageWenn ich die von Dir angegebene Location aufrufe und
den Link anklicke, dann geht Dein unterlink in einem neuen
Fenster auf.Ich habe versuchsweise mal ein empty.htm im Frameset
als src angegeben und dann klappt es so, wie ich Deine
Absicht verstanden habe.Zunächst war ich jedoch auf die unterschiedliche
Endung .htm <=> .html reingefallen.Klaus
Hallo Klaus...
Beim IE5, kommt einfach ein weisses Fenster unten, NS 4.51 kommt auch ein weisses Fenster, der öffnet aber beim klick auf dne Link ein neues Fenster...
Hmmm.... wiso willst du keine seite ins untere Frame laden ? Wenn du eine Weisse willst, mach doch kurz einfach eine....
MfG
Andy
Wiso machst du nicht einfach eine leere Seite ?
Hallo Klaus...
Hast Dich verguckt :o)
Hmmm.... wiso willst du keine seite ins untere Frame laden ? Wenn du eine Weisse willst, mach doch kurz einfach eine....
Wiso machst du nicht einfach eine leere Seite ?
erstmal hi Andy,
ich WILL ja so ein FRAME gar nicht mahen, aber ich will halt wissen, warum das nicht geht. Es wäre ja blöde ein Frame aufzurufen und dann ein Fenster leer zu lassen. Wenigstens ein Hallo ist da schon drin, nur meine Frage war einfach, wiso kann ich keine Seite in einem leeren Framefenster laden, OBWOHL ich dieses genau def. habe??
Gruß
Viktor
Hallo Viktor,
aber ich will halt wissen, warum
das ist Dein gutes Recht.
Warum die Banane krumm ist, kann ich Dir auch nicht so recht sagen,
nehme aber an, daß es was mit Schwerkraft zu tun hat. ;-)
Daß Dein Browser Dein undefiniertes aber 'benamstes' Fenster ignoriert,
könnte ich mir aber schon vorstellen.
Du gibst ihm zwar einen Namen mit auf den Weg, worauf er ihn denn aber
anwenden soll, das verheimlichst Du ihm geflissentlich und vorsätzlich.
Klaus
Hallo Viktor,
probier doch mal mit alerts in Deinem change_neu durch,
was denn so an Framenamen und Dokumenten existiert.
Ich habe zwar die Framenamen oben und anzeige gefunden,
aber bei den Dokumenten nur change_neu und Verzeichnis...
Klaus
Hi Klaus,
also die Banane ist nicht krumm wegen der Erdanziehung :o). Wenn das so wäre, dann müsste die Staude ja nach oben wachsen *g*
probier doch mal mit alerts in Deinem change_neu durch,
was denn so an Framenamen und Dokumenten existiert.
Ich habe zwar die Framenamen oben und anzeige gefunden,
aber bei den Dokumenten nur change_neu und Verzeichnis...
Du kannst mir glauben, das die Seite so ist, wie ich sie haben will. In einem Frameset wird beim Start nur ein Fenster mit einer HTML-Seite geladen (beide Fenster haben einen Namen). In dem zweiten Fenster wird bzw. sollte erst später eine HTML-Seite geladen werden. Ganz einfach.
Ich kann Dich aber beruhigen, das ich sowas eh nicht in Wirklichkeit machen würde, aber da ich immer wissen will, WISO was nicht geht, habe ich gedacht, irgendeiner kann mir da weiterhelfen, aber das war wohl ned so :o).
Dann ist das halt so wie mit den Bananen................... krumm ist krumm :o))))
Gruß
Viktor
Hallo Viktor,
also die Banane ist nicht krumm wegen der Erdanziehung :o).
Wenn das so wäre, dann müsste die Staude ja nach oben wachsen *g*
Also, da bin ich anderer Meinung.
Die Stauden hängen, in der Mitte dieser senkrechte Hauptstrang und die
einzelnen Bananengrüppchen wachsen zunächst waagerecht nach
außen und werden krummer und krummer je älter sie werden.
Irgendwann zeigt das Ende dann fast nach unten.
Aber, das braucht nicht wirklich die Erdanziehung sein.
Es soll ja auch andere Häkchen geben die sich früh krümmen.
[schnipp, nun gesternabend]
bin gerade am Durchflöhen der Quellen.
Bisher hatte ich es so gehalten, daß da wo Rahmen dransteht
auch was drin zu sein hat. Deinen Ansatz, einen leeren
Rahmen lediglich über den Namen zu referenzieren, muß ich halt
noch kapieren.
In SELFHTML/tcia.htm findest Du:
Mit <frame src=...> "Dateiname" definieren Sie innerhalb
eines Frame-Sets den Inhalt des bzw. der zugehörigen Frames
(frame = Rahmen, src = source = Quelle).
...
Ferner sollten Sie für jeden definierten Frame mit name=
einen Namen vergeben. Diese Namen brauchen Sie, um Verweise zu
anderen Frames zu definieren.
...
Beachten Sie:
Wenn Sie zu Beginn oder überhaupt keinen Inhalt in einem Frame
anzeigen wollen, notieren Sie einfach ein nacktes <frame>.
Der Name ist mit dem 'sollte'-Attribut versehen, nicht jedoch src.
Der letzte Satz relativiert aber auch das.
Hieraus kann man also noch nicht explizit schließen, daß Dein
Ansatz erlaubt ist oder auch nicht, 'das Wenn Sie zu Beginn...'
sollte es als möglich erscheinen lassen.
In einer HTML-Referenz (WinHlp) steht:
<FRAME>
This tag defines a single frame in a frameset. It has 6 possible
attributes:
SRC, NAME, MARGINWIDTH, MARGINHEIGHT, SCROLLING, and NORESIZE.
The FRAME tag is not a container so it has no matching end tag.
SRC="url"
The SRC attribute takes as its value the URL of the document to be
displayed in this particular frame. FRAMEs without SRC attributes
are displayed as a blank space the size the frame would have been.
NAME="window_name"
The NAME attribute is used to assign a name to a frame so it can be
targeted by links in other documents (These are usually from other
frames in the same document.) The NAME attribute is optional;
by default all windows are unnamed.
Hier sind alle Attribute als optional gekennzeichnet, jedenfalls
verstehe ich das so. Die Aussage zu src stimmt mit der obigen
letzten Aussage aus SELFHTML überein.
Bis hierher würde ich schließen, daß Dein Ansatz richtig ist.
Du hast einen Namen vergeben der zum Referenzieren benötigt
wird, die Auslassung der Quelle definiert das Frame als leer.
Über das JavaScript-Object bzw -Array 'frames' sollten auch
namenlose Frames über Indices erreichbar sein, dazu müsste der
Anker aber wohl anders definiert werden.
Die Hinweise zu targets kann ich in SELFHTML gerade nicht finden.
Es gibt sie aber.
Ja, in SELFHTML/tcic.htm:
...
Anstelle von target="_blank" können Sie auch target="Halligalli"
oder sonst irgendeinen Unsinn notieren. Wenn es kein Fenster mit
diesem Namen gibt, öffnen die WWW-Browser das Verweisziel in einem
neuen Browser-Fenster.
Die besagte HTML-Referenz gibt jedoch einen Hinweis zum Verhalten.
TARGET
Browser windows can now have names associated with them.
Links in any window can refer to another window by name.
When you click on the link, the document you asked for will
appear in that named window. If the window is not already open,
Netscape will open and name a new window for you.
Der letzte Satz besagt, wenn ein Fenster, hier wohl eher ein Frame,
dem Browser nicht bekannt ist, dann öffnet und benennt er es automatisch.
Dieses beschreibt ganz gut was ich an Deinem Beispiel beobachten konnte.
Meine Schlußfolgerung ist, daß der Browser das von Dir benannte
Frame nicht kennt und es daher als neues Fenster öffnet.
Im Umkehrschluß bedeutet das aber, daß der im Frameset definierte
Name für das im Anker benutzte target entweder nicht sichtbar
oder nicht erreichbar ist.
Auweia, das ist ja peinlich!
Der Name 'ansicht' ist ja im Frameset, also auf oberster Ebene
definiert, genauso wie 'oben'.
Nun versuchst Du aus dem einen untergeordneten Bereich, nämlich
'oben', den Inhalt und somit die 'location' eines anderen Bereiches,
namlich in 'ansicht' zu ändern. Die beiden untergeordneten Bereiche
kennen sich aber doch nicht.
Aus diesem Grunde wird ja auch ein neues Fenster geöffnet.
Dieses ist ja dann im Prinzip das Zwei-Frames-Problem wie in
SELFHTML/teda.htm beschrieben.
Damit geht Dein Ansatz aber nicht, einfach deshalb, weil Du
dazu die property location.href von 'ansicht' umdefinieren mußt.
Aber gerade diese ist ja nicht definiert weil Du das Frame ja
als leer definiert hast und es somit noch keine gibt.
Wenn Du nun im Frameset eine 'leere' Quelle (zB src="empty.htm")
angibst, dann gibt es für 'ansicht' eine 'location' und der
Browser ist in der Lage diese zu ändern.
Ob meine Erklärungsversuche das gelbe vom Ei sind, hab' ich selbst
noch nicht kapiert, vielleicht blicke ich das noch nicht so recht.
Die Definition eines leeren documents macht die einfache Nutzung
des target="ansicht" im href möglich ohne auf JavaScript zurück-
greifen zu müssen. Aber auch das Zwei-Frames-Verfahren funktioniert
bei mir nicht solange das Frame kein definiertes src hat.
Das liegt vermutlich daran, daß das JavaScript Objektmodell
mit seinen Sichtbarkeitsbedingungen nicht für die einfachen
HTML-Konstrukte maßgebend zu sein braucht.
Ich habe mal rumprobiert, es funktioniert.
[schnipp, nun wieder heute]
Nun, bislang haben meine Versuche eher die Qualität:
'denn wär sie nicht krumm, dann wär sie eine Banane nicht mehr'.
Die Hauptgefahr bei Deiner Struktur ist wohl, daß im leeren
Frame unerwünschterweise ein Verzeichnis abgebildet werden kann.
Wenn diese Zugriffsart auf dem Server verboten ist, dann
kommt auch noch eine Fehlermeldung.
Was ist eigentlich mit der Hintergrundsfarbe? Diese hängt
doch dann zunächst nur von den Einstellungen des Users ab.
Erst wenn Du ein Body lädst wird sie ja ggf. gesetzt.
Das Erscheinungsbild Deiner Seite könnte dann erstmal
recht 'gräulich' sein.
Klaus
Hi Klaus,
jaja *kicher* ist gar ned so einfach, aber ich denke, ich muß das wohl akzeptieren, das das so ist :o)
Die Stauden hängen, in der Mitte dieser senkrechte Hauptstrang und die
einzelnen Bananengrüppchen wachsen zunächst waagerecht nach
außen und werden krummer und krummer je älter sie werden.
Irgendwann zeigt das Ende dann fast nach unten.
Aber, das braucht nicht wirklich die Erdanziehung sein.
Stimmt, hast recht. Jedoch ohne Erdanziehung würden sie gerade nach außen wachsen, es sein denn, die Schale wächst auf einer Seite langsammer. Wenn das jetzt Stefan lesen könnte, der würde wieder schimpfen, was denn Bananen hier im Forum zu suchen hätten *lach*
Es soll ja auch andere Häkchen geben die sich früh krümmen.
*hust* weiß jetzt gar nicht, was Du meinst ;o)
Im Umkehrschluß bedeutet das aber, daß der im Frameset definierte
Name für das im Anker benutzte target entweder nicht sichtbar
oder nicht erreichbar ist.
Genau, kann ja anders gar nicht sein.
Auweia, das ist ja peinlich!
Der Name 'ansicht' ist ja im Frameset, also auf oberster Ebene
definiert, genauso wie 'oben'.
*g*
Damit geht Dein Ansatz aber nicht, einfach deshalb, weil Du
dazu die property location.href von 'ansicht' umdefinieren mußt.
Aber gerade diese ist ja nicht definiert weil Du das Frame ja
als leer definiert hast und es somit noch keine gibt.
Hmmmmmmm, ist aber irgendwie nicht logisch. Ich sag ja, oben ist oben und anzeige ist anzeige. Muß theoretisch völlig egal sein, ob da was drin steht, oder nicht.
Ob meine Erklärungsversuche das gelbe vom Ei sind, hab' ich selbst
noch nicht kapiert, vielleicht blicke ich das noch nicht so recht.
Ist ja auch egal. Es ist halt so und basta :o). Ich bedanke mich auf jeden Fall für Deine Hilfe. Kannst sicher sein, bei meinem rumgewurschtel fall ich öfters über solche Fragen und ich werde euch dann damit belustigen :o).
Nun, bislang haben meine Versuche eher die Qualität:
'denn wär sie nicht krumm, dann wär sie eine Banane nicht mehr'.
*grübel* also würde sie nicht Banane heißen?? Hmmmmmmm, wie denn dann????? Nein, SCHLUß *lach*
Die Hauptgefahr bei Deiner Struktur ist wohl, daß im leeren
Frame unerwünschterweise ein Verzeichnis abgebildet werden kann.
Wenn diese Zugriffsart auf dem Server verboten ist, dann
kommt auch noch eine Fehlermeldung.
Was ist eigentlich mit der Hintergrundsfarbe? Diese hängt
doch dann zunächst nur von den Einstellungen des Users ab.
Erst wenn Du ein Body lädst wird sie ja ggf. gesetzt.
Das Erscheinungsbild Deiner Seite könnte dann erstmal
recht 'gräulich' sein.
Na, ich hab ja schon am Anfang gesagt, das ich sowas eh nicht machen würde. Bin nur darüber gestolpert, weil ich was mit JavaScript versuchen wollte, was aber nicht gegangen ist und durch Zufall bin ich auf diese Sache gekommen.
Wenn Du unbedingt mal meine Seite anschauen willst, dann geh mal zu http://www.privat.web-art.de/viktor/
Ist nix aufregendes, nächste Woche hab ich Urlaub und dann werde ich die Seite überholen.
Tschüssi und nochmals vielen Dank :o)
Viktor
Hallo Klaus, hallo Viktor!
Wenn sich die Bananen nicht vor Lachen gekrümmt haben, dann wäre folgendes zu sagen:
Die Banane wächst nach OBEN!!! Und krumm ist sie wegen das Sonnenlicht. (angeblich... ;-) )
http://www.m-w.com/mw/art/banana.htm
Noch eines bleibt mir noch zu sagen: Auf alle Fälle: Bananenschale IST rutschig! *ggg*
Grüße
Thomas
Hey... coole Maschiene...
Hab fast die gleiche, nur mit 128 MB Ram ;)
Hmm.. Hat die Uni so eine schlechte Anbindung das der so langsam ist ?
Studierst du medizin ? Oder wie kommt er zu dem Hostnamen : hobbes.hno.medizin.uni-tuebingen.de ??
Hmm.. ich hab noch die Kamara dazu.., ist voll geil... ;) Was fehlt ist leider die Internet Anbindung !
Noch nen schönen Tag wünscht Dir
Beni
PS: Die Homepage ist nicht von mir ! ;)