1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Frames ablösen mit JavaScript

Discussion in 'Programmieren' started by regiedie1., Jul 27, 2005.

Thread Status:
Not open for further replies.
  1. regiedie1.

    regiedie1. Megabyte

    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

    Weiß mir echt niemand was?
     
  3. kalweit

    kalweit Hüter der Glaskugel

  4. regiedie1.

    regiedie1. Megabyte

    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

    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

    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

    ...nun brauchst du die Anleitung zur frameset.html nur noch fertig lesen und die noch fehlenden Befehle ergänzen...
     
  8. regiedie1.

    regiedie1. Megabyte

    Ich find da nichts was noch fehlen könnte.
     
  9. kalweit

    kalweit Hüter der Glaskugel

    ...och, musst du nur genau lesen - Tipp: was nützt eine Funktion, die nie aufgerufen wird...?
     
  10. regiedie1.

    regiedie1. Megabyte

    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

    Was soll das sein?!? Kapier ich nicht:
    HTML:
    <FRAMESET ... onLoad="SeiteLaden(); return true;">
     
  12. kalweit

    kalweit Hüter der Glaskugel

    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

    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

    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

    (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

    PS: Einen Tipp habe ich noch: Teste mal deine Seiten unter dem Mozilla und schalte dazu die JavaScript-Konsole an.
     
Thread Status:
Not open for further replies.

Share This Page