Frame setzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Frame setzen

    Hallo Ihr lieben,
    Ich hab da mal wieder eine kleine Frage.
    Meine Scripte werden immer in einem Frame gezeigt.
    Wird dieses Script allerdings manuel als url eingegeben
    z.B http://www.?/?/script.php3 wird es auch angezeigt (logisch).
    Ich möchte aber nun das dieses Script nicht eigenständig dargestellt werden kann, sondern immer in dem dafür vorgesehen Frame, sowie alle anderen Frames auch angezeigt werden, also so als wenn man das Script von der Hauptseite angeklickt hätte, und dieser dann halt in dem dafür zuständigem Frame erscheint.
    Ich hab es halt leider nicht so mit Java aber ich denke das es damit gemacht werden könnte.
    Danke im voraus.
    Gruß
    Arni
    Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

  • #2
    (fast) nichts einfacher als das

    Code:
    <script language="JavaScript"><!--
      if (!parent || parent.frames.length==0)
        top.location.href="frameset.html";
    //--></script>
    Hilft natürlich nix, wenn der Surfer JavaScript abgestellt hat, aber anders geht's meines Wissens nach nicht.
    Um's noch raffinierter zu machen, kannst du auch noch den Namen des parent abfragen, dazu mußt du ihn aber erst setzen:

    <frameset name="papa">
    ...
    </frameset>

    und dann: ... if (!parent || parent.name!='papa') ...

    Damit verhinderst du auch noch weitgehend, daß das Skript in einem fremden Frameset läuft.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Hallo Titus,

      das hat ja alles klasse geklappt, aber ich kriege das nicht nicht, das nachdem die Frameseiten geladen wurden, auch das aufgerufen Script aufgerufen wird.
      Also http://www.??/???/sript.php3
      Es springt in den Hauptframe aber das zuvor aufgerufene Script Script.php3 wird nicht mehr aufgerufen.
      Muß ich da snoch etwas anderes berücksichtigen

      Gruß
      Arni
      Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

      Kommentar


      • #4
        Schau mal Titus
        so hab ich es gemacht
        <script language="JavaScript"><!--
        if (!parent || parent.name !='haupt')
        top.location.href="../index.htm"
        document.location.href="<?php $PHP_SELF ?>";

        //--></script>
        das klappt aber nicht (heul)
        Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

        Kommentar


        • #5
          du kannst nicht nachdem du schon die top.location anders besetzt hast noch auf irgendwas zugreifen. Aber warum lädt denn dein Frameset nicht das Skript?
          Außerdem könntest du es auch mit PHP selbst machen, d.h. das Frameset ruft in Frame XY dein Skript als "skript.php3?start=yes" auf und in skript.php3 schaust du erstmal, ob da $start=="yes" ansonsten echo "<script>top.location.href='frameset.html';</script>"; oder so.

          Oder lädt das Frameset gar nicht dein Skript?

          Kommentar


          • #6
            Hi
            Das Script kann ja mit angabe des Links http://www.?/?/script.php3
            aufgerufen werden.
            Normalerweise werden die Frameseiten geladen. Von dort aus wird per link mein Script.php3 in einem bestimmten Frame
            (target=haupt) geladen.
            Ich möchte halt einfach , das wenn das Script so aufgerufen wird http://www.?/?/script.php3, die anderen Frameseiten auch geladen werden. Also wie es halt normalerweise geschehen würde wenn man über die normale Seite diesen aufrufen würde.
            also http://www.?.de.

            Gruß
            Arni
            Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

            Kommentar


            • #7
              Okay, nochmal langsam:

              http://www.?.de/index.html -> starte frameset.html

              http://www.?.de/frameset.html:
              <frameset cols="20%,*">
              <frame name="navigation" src="navi.html">
              <frame name="haupt" src="?/skript.php3?start=yes">
              </frameset>


              http://www.?.de/?/skript.php3:

              erste Zeile:
              <? if ($start!="yes") echo "<script>top.location.href='http://www.?.de/index.html';</script>";

              else {?>

              normales Skript....

              wenn dein Skript ohne den Parameter geladen wird, dann weißt du, daß nicht das Frameset die Datei lädt, also gleich ne Umleitung zur Hauptseite bzw. zum Frameset -> dann wird gesamtes Frameset richtig geladen.
              Falls du kein Frameset hast, das speziell in einem Frame als Src dein Skript angibt, dann mach doch aus frameset.html eine frameset.php3 und übergibt da wiederum, was an src geladen werden soll, d.h. dein Aufruf oben müßte dann ungefähr so aussehen:

              top.location.href='http://www.?.de/frameset.php3?srcfile=skript.php3'

              und dann halt im Frameset bei gesetztem $srcfile den Inhalt als src= reinechoen:

              <frameset cols="20%,*">
              <frame name="navigation" src="navi.html">
              <frame name="haupt" src="<? if ($srcfile!="") echo $srcfile; else echo "?/skript.php3";?>?start=yes">
              </frameset>

              bis dann

              P.S.: sorry, hab gerade erst gelesen, daß du über einen Link dein Skript aufrufst. Also dann die zweite Variante von oben -> Frameset, das auch auf den Parameter $srcfile reagiert und bei deinem Link, mit dem du eigentlich skript.php3 aufrufts, hängst du den Parameter ?start=yes dran.

              Ansonsten sind die Varianten mit Javascript-Abfrage nach dem Frameset doch sehr gut. Wie es dir beliebt...

              [Editiert von BrainBug am 04-04-2001 um 10:56]

              Kommentar


              • #8
                Hallo BrainBug
                Ich Danke Dir für die rasche Antwort.
                Ich werde es probieren ob es so klappt.
                Gruß
                Arni
                P.S:Ich kann es leider erst heute Abend versuchen, werde aber auf jeden Fall mitteilen ob es geklappt hat.
                Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

                Kommentar


                • #9
                  Hi BrainBug
                  es hatte super geklappt.
                  Vielen Dank nochmals, auch an Titus

                  Gruß
                  Arni
                  Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

                  Kommentar


                  • #10
                    Hallo !

                    Habe ein ähnliches Problem. Die einzelnen Seiten sind in den Suchmaschinen gelistet. Wenn man diese aufruft landet man natürlich auch nicht im Frame. Läßt sich dieses Beispiel für mehrere verschiedene Seiten abändern ? (also nicht nur für Script.php3 sondern auch für script1.php3, script2.php3 usw..)

                    Shakkar

                    Kommentar


                    • #11


                      Hi, dass war mal ein Beitrag für Juniors! perfekte Lösung für mich, also auch ein herzliches vergells gott, aus dem Stoiber Meer, gell!

                      Mehr davon...tante gracie, obwohls bestimmt ja manchmal nervt...
                      alex
                      na lecker...
                      alex

                      Kommentar


                      • #12
                        @shakkar
                        in die Contentseiten:
                        Code:
                        <SCRIPT LANGUAGE="JavaScript">
                        <!--
                        if (top.frames.length==0) {
                        top.location.href='http://www.domain.de/?srcfile=<? echo "$PATH_INFO";?>';}
                        //-->
                        </SCRIPT>
                        index.php siehe BrainBug...
                        Gruß
                        Thomas

                        Kommentar

                        Lädt...
                        X