Torsten Montag: Seiten immer im selben Frame öffnen

Matthias Bigge zum Thema: “frameset wird trotz target nicht mehr richtig erkannt“

http://forum.de.selfhtml.org/archiv/2002/4/9480/#m52600

Hallo!

Ich beziehe mich auf folgenden Thread:

http://forum.de.selfhtml.org/archiv/2002/4/9480/#m52600

Der Herr Matthias Bigge erläuterte das allgemeine Problem und bot mir bzw. seinem damaligen Diskusionspartner eine Lösung in JAVASCRIPT an.

Da es genau der Schlüssel zu meinem Problem ist, probierte ich es auch gleich aus!

Leider klappte es nicht so richtig.

Hier ein paar Fragen:

1. Frage

Folgender Quelltext sollte in den Head Bereich eingefügt werden:

“In die Seite, die im Frame angezeigt werden soll, fügst Du in den head-Bereich folgendes Script ein:“

<SCRIPT language="JavaScript">
   <!--
     function checkFrameset() {
     if(!parent.Inhalt)
     location.href="http://Deine Seite de/Seite, die den Frameset enthält.htm?" + location.pathname;
    }
   //-->
  </SCRIPT>

muss ich hier individuelle Parameter aus meiner Seite ergänzen/ersetzen?

Bsp.: muss für parent.inhalt etwas anderes eingesetz werden

2. Frage

“In die Haupseite, in der die Frames definiert werden, fügst Du folgendes Script ein:“

<SCRIPT language="JavaScript">
 <!--
 function checkFramecall() {
 var Adressanhang=location.search;
 if(Adressanhang)
 frames.DeinZielframename.location.href=Adressanhang.substring(1,Adressanhang.length);
    }
 //-->
 </SCRIPT>

Muss dieses Script im head oder im body Teil eingesetzt werden? Und welche Parameter muss ich ersetzen?

In folgender Seite ist in meinem Web das frameset definiert:

www.bstm.de/index.html

Wäre nicht schlecht, wenn mir jemand posten könnte, wie ich alles einstellen muss, so dass bspw. der direkte Aufruf der Seite www.bstm.de/privat/studium/index.html
in dem selben Frame wie die Seite www.bstm.de erscheint.

Noch besser wäre eine HTML Lösung!

Vielen Dank!

PS.: Sollten noch irgendwelche Angaben fehlen stehe ich natürlich jeder Zeit zur Verfügung! Auch unter torsten_montag@web.de

  1. Hallo Torsten,

    ich hatte damals in selfHTML die Quelle nicht gefunden, aus der ich den Code für meinen Vorschlag gebaut hatte. Konnte ich auch nicht, denn es war der feature-Artikel von Martin Wernecke
    "Datei dynamisch in Frameset laden", in dem alles sehr schön erklärt ist:

    http://selfaktuell.teamone.de/artikel/javascript/dyn-frames/index.htm#a3

    1. Frage

    <SCRIPT language="JavaScript">
       <!--
         function checkFrameset() {
         if(!parent.Inhalt)

    ^^^^^
    hier muss statt "Inhalt" der Name des Verweisframes rein

    location.href="http://DeineSeite.de/Seite,die den Frameset definiert.htm?" + location.pathname;

    hier kann man meine ANgaben verstehen, oder

    1. Frage

    “In die Haupseite, in der die Frames definiert werden, fügst Du folgendes Script ein:“

    <SCRIPT language="JavaScript">
    <!--
    function checkFramecall() {
    var Adressanhang=location.search;
    if(Adressanhang)
    frames.DeinZielframename.location.href=Adressanhang.substring(1,Adressanhang.length);
        }
    //-->
    </SCRIPT>

    Erläuterungen im erwähnten Feature-Artikel

    Noch besser wäre eine HTML Lösung!

    Ein bisschen Selber-Denken kann auch Spa? machen ;-)

    Mathias Bigge

    1. OK, vielen Dank erstmal. Hatte dir eine Mail geschickt, aber so gehts ja auch.

      Hab mir mal deine/eure Seite angesehen. Nicht schlecht was ihr da so macht.

      Noch besser wäre eine HTML Lösung!

      Ein bisschen Selber-Denken kann auch Spa? machen ;-)

      Das ist zwar prinzipiell richtig, aber irgendwann machts einfach keinen Spaß mehr, wenn du schon seit Monaten rumexperimentierst. Ich mach das ja auch nicht hauptberuflich, sondern, wie du vielleicht schon auf meiner Seite bemerkt hast, stelle ich für die Studenten der FH Erfurt so ziemlich alles ins Netz, was man beim Studium gebrauchen kann. Da muss es eben manchmal auch schnell gehen und bevor ich da Tage vor dem PC verbringe, nutze ich lieber diese geniale Methode, um mit Leuten wie dir, denen das ganze viel einfacher fällt (da für euch sehr oft Routiene), kurz und bündig eine Lösung zu erarbeiten.

      Natürlich habe ich meine Seite selbst erstellt, aber die ein oder anderen Dinge lasse ich mir lieber von Experten erklären, wegen des Zeitfaktors.

      Also, nochmals vielen Dank!

      Ich probiers mal aus, wenns klappt, meld ich mich noch mal, wenn nicht dann sowieso.

      Torsten

    2. Der Nervige ist wieder Online!

      Tut mir leid Matthias, aber es will einfach nicht funktionieren.

      Ich habe mir die Seite http://selfaktuell.teamone.de/artikel/javascript/dyn-frames/index.htm#a3
      angesehen und meiner Meinung nach alles so gemacht, aber wie du siehst...

      Im folgenden habe ich mal meinen Quelltext geposted, ich hoffe du kannst mir helfen!

      Die Seite, welche sich ohne Frame öffnet: www.bstm.de/privat/studium/index.html
      Die Seite in der das Frameset definiert ist: www.bstm.de/index.html

      Die Seite ist in 3 Teile untergliedert:

      1. main = dort, wo die Informationen zu lesen sind
      2. links = ein Navigationsframe
      3. kopf = ein anderer Navigationsframe

      Ich habe nun die 2 Teile der selfhtml - Beschreibung abgebildet:
      Habe ich die Framenamen richtig benannt?
      Was ist falsch?
      Wenn ich www.bstm.de/privat/studium/index.html aufrufe passiert eben nichts!

      Teil 1: Inhalt der Frameseite (www.bstm.de/privat/studium/index.html)

      <html>

      <head>
        <meta http-equiv="content-type" content="text/html;charset=ISO-8859-2">
        <meta name="generator" content="Adobe GoLive 5">
        <title>Fachhochschule Erfurt - FB Wirtschaftswissenschaften</title>

      <SCRIPT language="JavaScript">
                        <!--
                        function checkFrameset() {
                        if(!parent.links)
                       location.href="http://www.bstm.de/index.html?" + location.pathname;
                       }
                       //-->
                      </SCRIPT>
       </head>

      <body onLoad='checkFrameset()'>
        <div align="center">
         <table cellpadding="0" cellspacing="2">
          <tr>
           <td>
      .....

      Teil 2: Inhalt der Frameset-Seite (www.bstm.de/index.html )

      <html>

      <head>

      <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content=" Adobe GoLive 5">
        <title>Büroservice Torsten Montag</title>

      <SCRIPT language="JavaScript">
      <!--
       function checkFramecall() {
        var Adressanhang=location.search;
        if(Adressanhang)
        frames.main.location.href=Adressanhang.substring(1,Adressanhang.length);
       }
      //-->
      </SCRIPT>

      </head>

      <frameset rows="129,*"onLoad="checkFramecall()" border="0" framespacing="0" frameborder="0">
        <frame name="kopf" src="framekopf.html"  noresize scrolling="no">
        <frameset cols="176,*"  border="0" framespacing="0" frameborder="0">
         <frame name="links" src="frame_links.html"  noresize scrolling="no">
         <frame name="main" src="startseite.html"  noresize>
        </frameset>
      </frameset>

      <noframes>

      <body bgcolor="#ffffff">
      Hier steht bei mir nichts
        </body>

      </html>

      Danke!

      Torsten

      1. Hallo Torsten,

        Tut mir leid Matthias, aber es will einfach nicht funktionieren.

        ^^^^^
                        mit einem "t"

        Das mehr zum Thema: "schnelle Finger" oder "erst denken, dann tippen"

        Die Seite, welche sich ohne Frame öffnet: www.bstm.de/privat/studium/index.html
        Die Seite in der das Frameset definiert ist: www.bstm.de/index.html

        Die Seite ist in 3 Teile untergliedert:

        1. main = dort, wo die Informationen zu lesen sind
        2. links = ein Navigationsframe
        3. kopf = ein anderer Navigationsframe

        Was ist falsch?
        Wenn ich www.bstm.de/privat/studium/index.html aufrufe passiert eben nichts!

        Teil 1: Inhalt der Frameseite

        (www.bstm.de/privat/studium/index.html)

        <html>

        <head>
          <meta name="generator" content="Adobe GoLive 5">

        Das ist der Haken bei den guten alten WYSYWYG-Programmen: Schnell ist was zusammengeklickt, aber bis man's durchschaut.... Sieht erst so schön einfach und logisch aus mit den Frames, aber der Haken folgt, wie Du siehst, auf dem Fuße.

        <SCRIPT language="JavaScript">
                          <!--
                          function checkFrameset() {
                          if(!parent.links)

        Hier scheint mir der erste Denkfehler zu stecken. Parent ist nicht der Frame, in dem der Verweis angeklickt wird, sondern der Frame, in dem die HTML-Seite angezeigt werden soll, soweit ich Deine Seite durchblicke "main".

        location.href="http://www.bstm.de/index.html?" + location.pathname;
                         }
                         //-->
                        </SCRIPT>
        </head>

        onLoad='checkFrameset()'
        hast Du anscheinend drin, warum nun rein gar nichts passiert, wundert mich, vielleicht ein Tippppfehler, JavaScript abgeschaltet?
        Auch bei falscher Framangabe müßte eigentlich etwas passieren.

        Teil 2: Inhalt der Frameset-Seite (www.bstm.de/index.html )

        <SCRIPT language="JavaScript">
        <!--
        function checkFramecall() {
          var Adressanhang=location.search;
          if(Adressanhang)
          frames.main.location.href=Adressanhang.substring(1,Adressanhang.length);
        }
        //-->
        </SCRIPT>

        </head>

        <frameset rows="129,*"onLoad="checkFramecall()" border="0" framespacing="0" frameborder="0">
          <frame name="kopf" src="framekopf.html"  noresize scrolling="no">
          <frameset cols="176,*"  border="0" framespacing="0" frameborder="0">
           <frame name="links" src="frame_links.html"  noresize scrolling="no">
           <frame name="main" src="startseite.html"  noresize>
          </frameset>
        </frameset>

        Sieht erstmal unverdächtig aus. Wenn's hier nochmal hakt, meld Dich nochmal.

        Viele Grüße

        Mathias