Frames ablösen mit JavaScript

Dieses Thema im Forum "Programmieren" wurde erstellt von regiedie1., 27. Juli 2005.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. regiedie1.

    regiedie1. Megabyte

    Registriert seit:
    28. Oktober 2004
    Beiträge:
    1.081
    Tag zusammen!
    Auf meiner Seite benutze ich diese Frames-Darstellung für das Menü links. Das ist aber schlecht, wenn jemand eine meiner Seiten über eine Suchmaschine findet, und dann auf ein einzelnes HTMLlein kommt, dass kein Menü integriert hat. Und in jede Datei ein Menü integrieren möchte ich auch nicht.
    Doch da kommt die super Lösung auf mich zu: JavaScript! - Bloß blöd, das ich keine Ahnung hab, wie man damit das Ding macht...
    Schön wäre es, wenn ich die bisherige menue.html behalten könnte, und dann nur von jeder einzelnen Seite vom head aus einen Link darauf setzen müsste. PHP hab ich nicht.
    http://winlux******
     
  2. regiedie1.

    regiedie1. Megabyte

    Registriert seit:
    28. Oktober 2004
    Beiträge:
    1.081
    Weiß mir echt niemand was?
     
  3. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.487
  4. regiedie1.

    regiedie1. Megabyte

    Registriert seit:
    28. Oktober 2004
    Beiträge:
    1.081
    Das da kam dabei heraus: http://winlux.superprovider.de/Entwicklung/Labor/frameset.html?datei.html

    Die Codes waren so:
    datei.html
    HTML:
    <html>
    <head>
       <SCRIPT LANGUAGE="JavaScript">
       <!--
       var Dateien = "frameset.html?datei.html";
    	
       if (top.frameset_geladen + "" != "okay"){
       if(document.images)
          top.location.replace(Dateien); 
       else 
          top.location.href = Dateien ;
       }	
       //-->
       </SCRIPT>
    </head>
    <body>
    Das ist der LINKE Text...
    </body>
    </html>
    frameset.html
    HTML:
    <html>
    <head>
       <SCRIPT LANGUAGE="JavaScript">
       <!--
       var frameset_geladen = "okay";
    
       function SeiteLaden() {
          if(self.location.search.length > 0) {
             var Search_Laenge = self.location.search.length;
             var info_url = self.location.search.substring(1,Search_Laenge);
             self.INFO.location.href = info_url; }
       }
       //-->
       </SCRIPT>
    </head>
    <body>
    He, he, he...
    </body>
    </html>
    Es wird beim Aufruf der Datei datei.html also komischerweiße nur das Frameset geladen. Allerdungs: Wo wird denn das Frameset überhapt definiert??? Da ist ja gar nichts drinn...
     
  5. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.487
    Das Frameset wird in der Datei frameset.html definiert und das musst DU natürlich selber machen - abschreiben allein reicht halt nicht ;)
     
  6. regiedie1.

    regiedie1. Megabyte

    Registriert seit:
    28. Oktober 2004
    Beiträge:
    1.081
    Gut.
    Die Lage ist wie folgt: Ich habe den Tag
    HTML:
    <frameset cols="157,*"><frame src="menue.html" name="links"><frame
     src="start.html" name="rechts">
    nach dem </head> und vor dem <body> eingeführt und gleich auch noch passend die menue.html erstellt. wenn ich jetzt die datei.html starte, öffent sich ein Frameset, wo nur links das Menü sichtbar ist. Also ohne die datei.html rechts.
    [​IMG]
     
  7. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.487
    ...nun brauchst du die Anleitung zur frameset.html nur noch fertig lesen und die noch fehlenden Befehle ergänzen...
     
  8. regiedie1.

    regiedie1. Megabyte

    Registriert seit:
    28. Oktober 2004
    Beiträge:
    1.081
    Ich find da nichts was noch fehlen könnte.
     
  9. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.487
    ...och, musst du nur genau lesen - Tipp: was nützt eine Funktion, die nie aufgerufen wird...?
     
  10. regiedie1.

    regiedie1. Megabyte

    Registriert seit:
    28. Oktober 2004
    Beiträge:
    1.081
    Ach so:
    HTML:
    <frameset cols="157,*"><frame src="menue.html" name="links"><frame src="datei.html" name="rechts">
    das funzelt... Aber: Dann bräuchte ich ja für JEDE einzelne HTML-Datei meiner Seite eine frameset.html!!! Das geht aber nicht, weil ich dazu keinen Bock hab!
    Das muss über eine zentrale Datei laufen!
     
  11. regiedie1.

    regiedie1. Megabyte

    Registriert seit:
    28. Oktober 2004
    Beiträge:
    1.081
    Was soll das sein?!? Kapier ich nicht:
    HTML:
    <FRAMESET ... onLoad="SeiteLaden(); return true;">
     
  12. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.487
    Das ist das Stück, das du brauchst, damit es funktioniert! Wie wäre es, sich mal mit dem Grundlagen von Javascript zu beschäftigen - es lässt sich eben nicht alles mit reinem Kopieren lösen...
     
  13. regiedie1.

    regiedie1. Megabyte

    Registriert seit:
    28. Oktober 2004
    Beiträge:
    1.081
    Der neue Code der fraimeset.html; jetzt index.html:
    HTML:
    <html>
    <head>
       <SCRIPT LANGUAGE="JavaScript">
       <!--
       var frameset_geladen = "okay";
    
       function SeiteLaden() {
          if(self.location.search.length > 0) {
             var Search_Laenge = self.location.search.length;
             var info_url = self.location.search.substring(1,Search_Laenge);
             self.INFO.location.href = info_url; }
       }
       //-->
       </SCRIPT>
    
    <title>WinLux</title>
    
    </head>
    
    <frameset cols="157,*"><frame src="menue.html" name="links"><frame
     src="start.html" name="rechts" onLoad="SeiteLaden(); return true;">
    <body>
    
    </body>
    </html>

    Und hier das Menü dazu.

    Wenn ich auf die Datei unterschiede.html klicke, (also im Explorer bei mir auf der HDD) lädt der Browser aber die menue.html und rechts die START.HTML! Also lädt er NUR diese Seite. Egal wie die aufgerufene Seite heißt. Der Code von Unterschiede:
    HTML:
    <html>
    <head>
    
     
      <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
    
     
      <title></title>
    </head>
    
       <SCRIPT LANGUAGE="JavaScript">
       <!--
       var Dateien = "index.html?unterschiede.html";
        
       if (top.frameset_geladen + "" != "okay"){
       if(document.images)
          top.location.replace(Dateien);
       else
          top.location.href = Dateien ;
       }    
       //-->
       </SCRIPT>
    <body>
    Hier stand ganz viel Text, der diese Seitenreferrenz sprengen würde...
    </body>
    </html>
    
    Stimmt diese komische Syntax.
     
  14. regiedie1.

    regiedie1. Megabyte

    Registriert seit:
    28. Oktober 2004
    Beiträge:
    1.081
    Heißt das vielleicht:
    HTML:
    <frameset cols="157,*"><frame src="menue.html" name="links"><frame src="onLoad="SeiteLaden(); return true;">" name="rechts">
    ???
     
  15. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.487
    (1) Deine Framenamen stimmen nicht mit denen in den JavaScipts überein (wenn du einen Frame "rechts" nennst, muss das auch entsprechenden JavaScript-Objekt so heißen
    (2) In der Anleitung steht nicht, dass du den Funktionsaufruf in <frame> einfügen sollst

    ...und da du den fertigen Quellcode von mir nicht kriegen wirst :D , soll es das auch von meiner Seite gewesen sein - aber du hast ja fast alle Möglichkeiten durchprobiert ;)
     
  16. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.487
    PS: Einen Tipp habe ich noch: Teste mal deine Seiten unter dem Mozilla und schalte dazu die JavaScript-Konsole an.
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen