Viktor: FRAMES: leeres Fenster läst sich nicht ansprechen

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

  1. 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

    1. 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

      1. 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

    2. 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

      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 ?

      1. 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

        1. 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

          1. 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

            1. 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

              1. 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

                1. 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

                  1. 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

    3. 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 ! ;)