Html-files abwechselnd in verschiedenen Frames

Hallo,

Ich habe eine Seite in Frames aufgeteilt. In dem ersten Frame habe ich Links stehen, die anderen Frames sind noch leer. Wenn ich auf einen Link drücke, erscheint der Inhalt der zugewiesenen HTML-Datei in einem der Frames.

Nun,

  1. der User mag den Frame vielleicht ein bisschen zu klein finden. Wie mache ich es, dass ich in dem ersten Frame mit den ganzen Links einen Link installiere, dass egal was auch immer in einem bestimmten anderen Frame steht, dieser Inhalt als neues Fenster geoeffnet wird?

  2. Ganz schwer: Gibt es eine Moeglichkeit, dass wenn ich auf die Links im ersten Frame drücke, der jeweilige Inhalt der HTML-Dateien immer abwechselnd in verschiedenen Frames angezeigt wird? Also etwa so: Ich druecke auf den Link „Lebenslauf“. Beim ersten Klick wird der Inhalt in dem ersten Frame geoeffnet. Jetzt klicke ich zum Beispiel auf „Chat“. Der Chatroom wird im zweiten Frame geoeffnet und nicht im ersten Frame, weil man sonst den Lebenslauf nicht mehr sieht. Und so weiter.

Fuer jegliche Hilfe bedanke ich mich im Voraus schon einmal tausendfach.

Bernhard Kraemer

Es wäre einfacher, wenn du die URL mal postest, ich hätte da eine Idee für ein JavaScript …

(Ich würd mir die Seite vorher gerne mal ansehen.)

MfG
Manuel Kirchberger

Adresse
Momentan ist die Adresse noch

http://home.t-online.de/home/bernhardkraemer/

Bitte nicht erschrecken!

Momentan probiere ich noch ein paar Dinge aus und es ist eigentlich noch kein Link gesetzt. Und unter Netscape sieht die ganze Sache noch einmal ganz anders aus… Es wartet insofern noch einige Arbeit auf mich. Aber Danke, wenn Du Dich darum kümmern magst!

Bernhard Krämer

Probieren wir’s mal.
Also,

Dein Frameset sieht folgendermaßen aus:

 Berninet

Du hast also praktisch 4 Frames in dieser Ausrichtung:

+---------+---------+---------+ --+ ---+
| name= | name= | name= | | |
| Link- | Links | Logo (?)| |
| leiste | | | | |
| +---------+ | --+ 
| | name= | | |
| | Inhalt | | |
| | | | |
| | | | | 
+---------+---------+---------+ ---+

Das würde ich wie folgt abändern:


    
    
    
    Berninet (? - warum Inhalt=main/frame.htm?)




So, dann weiter im Text:
Öffnen wir mal die Datei "main/main.htm"


    
    
    
    
    ... some HTML ...
    
    
    [shape="default" target="Gästebuch.html"\>](http://two.guestbook.de/gb.cgi?gid=1415694&prot=glavzl)
    
     **Anmerkungen:** 
    - " **shape**" wird z. B. bei Image-Maps verwendet, hat hier überhaupt keine Funktion.
    - " **target**": Hier nennst Du als Target den Namen "Gästebuch.html", d. h. der Browser wird das Ziel Deines Links in einem neuen Fenster öffnen, da dieser Name nicht in Deinem Frameset vergeben wurde. Ich denke mal, hier sollte _ **target="Inhalt"** _ stehen. Diesen Fehler (Falls es denn einer ist) hast Du übrigens in jedem Link. (siehe unten)
    
    
    ... some HTML ...
    
    
    [shape="default" target="chat.html"\>](chat.html)
    
    
    [target="linkliste.html" shape="default"\>](http://bannerliste.gehtgut.de/cgi-bin/ll/linklist.pl?ID=oldenbuerg3389&new=oldenbuerg)
    
    ... usw ...
    
    
    
    
    
    Aber nun zu Deiner eigentlichen Frage:
    Du wolltest wissen, wie man es realisieren kann, daß die durch die Links aufgerufenen HTML-Seiten abwechselnd in den verschiedenen Frames angezeigt werden:
    
    Hier nun der Code (File:// ../"main/ **main.html**":
    
    
        
        
        
         \<!-- 
        
         var count = 0;
         targetframes = new Array(0,2,3);
        
         function OpenLink(URL) 
         { 
         frame= targetframes[count];
         count=count+1;
         if(SinnDesLebens \> 2) count=0;
         parent.frames[frame].location.href = URL;
         }
        
         --\>
        
        
        
        und hier der Aufruf:
        
        
            
            
            
            
            
            Ich bin leider nicht dazu gekommen, das Skript zu testen, müsste eigentlich funktionieren. Wenn nicht, kurzes E-Mail mit Fehlerbeschreibung.
            
            In diesem Sinne:
            Schönes Wochenende!
            
            MfG
            Manuel Kirchberger
            
            P.S.: Sternchen bitte ;o)
1 Like

Endlich geschafft!

Dein Frameset sieht folgendermaßen aus:

Was bedeuted der PRE-Tag ?

Zur Erklärung meiner Programmation:
Meine Dateien sind durchzogen von Altlasten, einem früheren Projekt, das ich noch nicht realisiert habe. Dessen Quelltext habe ich übernommen und weiterverarbeitet und dabei nicht immer darauf geachtet, alles für die neue Seite abzuändern. So heißt in der index.htm ein Frame zum Beispiel „Logo“, obwohl ich niemals vorhatte, in diesen Frame ein Logo zu plazieren. Ich habe die Frames jetzt mit Zahlen benannt, um sie kompatibel mit Deinem JavaScript zu machen.

Anmerkungen:

  • " shape" wird z. B. bei Image-Maps verwendet, hat hier
    überhaupt keine Funktion.
  • " target": Hier nennst Du als Target den Namen
    „Gästebuch.html“, d. h. der Browser wird das Ziel Deines Links
    in einem neuen Fenster öffnen, da dieser Name nicht in Deinem
    Frameset vergeben wurde. Ich denke mal, hier sollte
    _ target=„Inhalt“ _ stehen. Diesen Fehler (Falls es
    denn einer ist) hast Du übrigens in jedem Link. (siehe unten)

Du hast recht, auch so eine Altlast. Danke für die Tips!

Aber nun zu Deiner eigentlichen Frage:
Du wolltest wissen, wie man es realisieren kann, daß die durch
die Links aufgerufenen HTML-Seiten abwechselnd in den
verschiedenen Frames angezeigt werden:

Hier nun der Code (File:// …/„main/ main.html“:

<!–

var count = 0;
targetframes = new Array(0,2,3);

function OpenLink(URL)
{
frame= targetframes[count];
count=count+1;
if(SinnDesLebens > 2) count=0;
parent.frames[frame].location.href = URL;
}

–>

und hier der Aufruf:

Folgendes: Erst hat es gar nicht funktioniert. Denn zunächst war DerSinnDesLebens (übrigens 42) nicht definiert. Du wolltest wohl count einsetzen, das habe ich dann auch gemacht.
Dann kam die Fehlermeldung, parent.frame[]… sei kein Objekt. Daraufhin änderte ich die Framenamen in Zahlen von 1 bis 3 und ich glaube, dann ging es schon, wenn ich mich recht erinnere. Und alles wurde gut.
Dein Code ist wirklich gut, ich habe vielmals zu danken. Du hast Dir Deinen Bewertungspunkt redlich verdient, eine großartige Mühe hast Du Dir gemacht.

Vielen herzlichen Dank!

Bernhard