Einstein89: Titel auswerfen

Hi Community!

Ich habe folgendes Problem: Auf meiner Homepage verwende ich Frames die ich auch ganz gut einbinden konnte, wie auch alle anderen Seiten zum Frameset. Das Problem ist nur, dass ich gerne bei jeder Seite (Index.php, hobbies.php, family.php und impressum.php) den Title-Tag auf der Frameset-Seite (in meinem Fall (index.php wo ich die Frameset deffiniert habe) ausgeben will und zwar wenn ich auf die Menüverweise der einzelnen Seiten.

Bis jetzt habe ich folgendes geschrieben:

<title>[code lang=php]<?php echo "Alberts Homepage |" . $i; ?></title>[/code]

  1. Sorry, wollte die Vorschau anschauen, habe aber dann unabsichtlich das ganze verschickt *peinlich*.

    Also: Wie gesagt, ich möchte von jeder Seite den </title></title>-Tag rauslesen und auf der index.php Seite (Frameset-Seite) ausgeben, sodass wenn ich den Link für z.B: Familie oder Impressum anklicke, dass auch im title vom index.php die Variable für die family.php seite erscheint und zwar nicht auf der fam-Seite sondern auf index.php.

    Kommt ihr mit? Gut.

    Wichtig ist mir, dass die herausgegebene title nicht auf den jeweiligen Seiten angefürt ist, sondern nur auf der index.php weil das frameset schmeißt ja beim verweis im target=index.php die Seiten auf die rechte Frame seite.

    Ich hoffe auf eine hoffentlich konstruktive Lösung.

    MfG Albert

    1. Hi,

      Ich hoffe auf eine hoffentlich konstruktive Lösung.

      Verzichte gänzlich auf Frames. (Außer in ein paar Ausnahmefällen wo - insbesondere iFrames - einen Vorteil haben.

      Das ist meiner MEinung nach die einzig sinnvolle Lösung deines Problems. (Vor allem, weil das Problem schon bei "ich nutze Frames" anfängt und nicht da wo du mit dem Titel nicht weiterkommst.)

      Per Javascript könntest du das von dir gewollte umsetzen. Halte ich aber für puren Schwachsinn.

      Die andere Möglichkeit wäre das ganze Frameset neu zu laden. Aber dann sind wir wieder oben bei "Verzichte gänzlich auf Frames", weil dann deren Sinn absolut nicht mehr erkennbar ist.

      Grund: Du lädst in einem Frame lediglich ein Frameset nach. Wenn du im Navigations-Frame etwas anklickst dann läd nur im Content-Frame die entsprechende Seite.

      Mit PHP ist es daher unmöglich den Titel in das Frameset zu bekommen. Außer eben wenn man mit PHP ein entsprechendes (schwachsinniges) Javascript ausgibt.

      Gruß
      Alex

      1. Hi,

        Ich hoffe auf eine hoffentlich konstruktive Lösung.

        Verzichte gänzlich auf Frames. (Außer in ein paar Ausnahmefällen wo - insbesondere iFrames - einen Vorteil haben.

        Das ist meiner MEinung nach die einzig sinnvolle Lösung deines Problems. (Vor allem, weil das Problem schon bei "ich nutze Frames" anfängt und nicht da wo du mit dem Titel nicht weiterkommst.)

        Per Javascript könntest du das von dir gewollte umsetzen. Halte ich aber für puren Schwachsinn.

        Die andere Möglichkeit wäre das ganze Frameset neu zu laden. Aber dann sind wir wieder oben bei "Verzichte gänzlich auf Frames", weil dann deren Sinn absolut nicht mehr erkennbar ist.

        Grund: Du lädst in einem Frame lediglich ein Frameset nach. Wenn du im Navigations-Frame etwas anklickst dann läd nur im Content-Frame die entsprechende Seite.

        Eben genau das soll doch geschehen. Wenn man links auf die Menüpunkte klickt, soll die dazugehörige Seite (eh klar) inkl den dazugehörigen Titeln angezeigt werden und nicht die ganze Zeit der Titel der Framesetseite.

        Sprich:

        Home ----> index.php mit Titel "Alberts Homepage - Home
        Familie ----- -----> family.php mit Titel -||- - Familie
        usw. usw.

        habe es sogar versucht mit <form>-Tags in der title-Tag zu arbeiten, wo eine $title Variable auf jeder Seite an die Frameset-Seite geschickt wird. Leider ohne Erfolg.

        Vielleicht gibt es doch eine lösung.

        1. Mahlzeit Einstein89,

          Eben genau das soll doch geschehen. Wenn man links auf die Menüpunkte klickt, soll die dazugehörige Seite (eh klar) inkl den dazugehörigen Titeln angezeigt werden und nicht die ganze Zeit der Titel der Framesetseite.

          Herzlichen Glückwunsch, Du hast einen der gravierenden Nachteile bei der Nutzung von Frame(set)s gefunden!

          Vielleicht gibt es doch eine lösung.

          Nicht ohne Javascript (um Client-seitig den Titel des HTML-Dokuments, das das übergeordnete Frameset enthält, zu ändern).

          MfG,
          EKKi

          --
          sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        2. Hi,

          Eben genau das soll doch geschehen. Wenn man links auf die Menüpunkte klickt, soll die dazugehörige Seite (eh klar) inkl den dazugehörigen Titeln angezeigt werden und nicht die ganze Zeit der Titel der Framesetseite.

          Sprich:

          Home ----> index.php mit Titel "Alberts Homepage - Home
          Familie ----- -----> family.php mit Titel -||- - Familie
          usw. usw.

          Ich habe dich voll und ganz verstanden, was du erreichen willst. Das Ziel (der richtige Tiel oben im Browserfenster) ist ja auch nachvollziehbar. Nur dein Weg ist schon vom Ansatz her falsch. Du sollst (wie du ja sicher schon auch an den anderen Antworten gemerkt hast) keine Frames verwenden.

          Du willst deine Seite nicht in Stücke aufteilen, dass einmal die Navigation, einmal der Footer, einmal eine Contenseite und vielleicht mit Glück auch einmal ein komplettes Frameset gefunden wird. Du willst außerdem (wie man an deiner Frage sieht) mit jedem Aufruf in der kompletten Seite - von Titel bis Footer - arbeiten/ändern können. Frames sind da halt schlecht, weil sie das nicht zulassen und eine Zerstückelung verursachen, die so - vor allem für Suchmaschinen - tödlich ist.

          Der einzige Weg wurde von mir bereits genannt. Javascript + dort den Titel clientseitig ändern. Dazu werde ich dir aber sicher keine Hilfestellung geben - und ich hoffe auch, dass das hier niemand anders tut. SelfHTML soll den Leuten helfen gescheite Websites zu basteln und nicht dazu dienen solche Javascript-Krücken zu promoten.

          Anders ist es, wenn es einen wirklichen Grund gibt, es so zu lösen. Aber da musst du viel Argumentationsarbeit leisten :P

          habe es sogar versucht mit <form>-Tags in der title-Tag zu arbeiten, wo eine $title Variable auf jeder Seite an die Frameset-Seite geschickt wird. Leider ohne Erfolg.

          Das zeigt, dass du mal wirklich in die Materie einsteigen solltest und die Basics lernen solltest.

          Mache dir dann Gedanken, was wann passiert (Zeitlicher Ablauf, Server, Client) und welche HTML-Tags wo zulässig sind.

          Gruß
          Alex

  2. Hi!

    Wir koennen ja mal alle ine ienem Satz sagen, was wir davon halten:

    Lass die Frames weg.

    --
    Vergesst Chuck Norris.
    Sponge Bob kann unter Wasser grillen!
    1. Weg mit den Frames.

      1. Weg mit den Frames.

        Hey! Ich werde sogar lokal unterstuetzt! ;)

        --
        Vergesst Chuck Norris.
        Sponge Bob kann unter Wasser grillen!
    2. Hallo steel,

      Lass die Frames weg.

      da haste recht. Frames bereiten mehr Umstände als sie einem Arbeit abnehmen.

      Wenn Einstein jedoch unbedingt will, dann kann er es wie folgt versuchen:

      In jedem Inhaltsdokument ist im onload-Ereignis folgender (ungetester) Code auszuführen:

          // Setze im obersten Fenster-Objekt den Titel auf meinen eigenen Titel  
          top.document.title = self.document.[ref:self812;javascript/objekte/document.htm#title@title=title];  
      
      

      Zum Verständnis hilft Svens Artikel Zugriff auf verschachtelte Fensterobjekte.

      Freundliche Grüße

      Vinzenz

  3. [latex]Mae  govannen![/latex]

    Ich habe folgendes Problem: Auf meiner Homepage verwende ich Frames [...]

    An dieser Position hätte der Satz beendet sein sollen.
    Das Wort „Frames“ ist (im HTML-Kontext) eigentlich nur ein Synonym für „dauerhafter Ärger“.

    Das Problem ist nur, dass ich gerne bei jeder Seite (Index.php, hobbies.php, family.php und impressum.php) den Title-Tag auf der Frameset-Seite (in meinem Fall (index.php wo ich die Frameset deffiniert habe) ausgeben will und zwar wenn ich auf die Menüverweise der einzelnen Seiten.

    Dann Ändere das Konzept. Lege die Überschriften aller Seiten in einer Datenbank / einem assoziativen Array ab, das einem bei jedem Request abgearbeiteten PHP-Script zur Verfügung steht . Dann kannst du jede Überschrift an jeder beliebigen Stelle ausgeben.

    Stur lächeln und winken, Männer!
    Kai

    --
    Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
    in Richtung "Mess up the Web".(suit)
    SelfHTML-Forum-Stylesheet
  4. Ok Jungs, ich habe jetzt das gesamte Frameset aufgelöst (war eigentlich nicht mein Ziel, nämlich kleine Homepage mit wenig KBs) aber jetzt funktioniert es einwandfrei.

    Nochmals Danke

    PS: ich kenne mich in HTML sehr wohl aus, habe nur noch paar Probs mit PHP, das ist alles. Ansonsten ist eh alles leicht. Also soll mir NIEMAND, aber auch wirklich niemand unterstellen ich würde mich nicht auskennen usw.

    Danke nochmal.

    LG

    1. Ok Jungs, ich habe jetzt das gesamte Frameset aufgelöst (war eigentlich nicht mein Ziel, nämlich kleine Homepage mit wenig KBs) aber jetzt funktioniert es einwandfrei.

      Du hast bei einer Frame-Website vielleicht weniger KB zu übertragen. Aber ich denke, dass ist irrelevant.

      Beim Aufruf der Seite hast du schon den Nachteil, dass 1. das Frameset und dann jeder Frame geladen werden muss. Hier hast du dann 2 unnötige Requests, die schädlicher sind als ein paar KB mehr.

      Durch gescheite Header, Ablaufdaten etc. kann man sehr viel abspecken. Dann bleibt da nicht mehr wirklich ein Vorteil. Zumindest überwiegen die Nachteile deutlich, wie du gesehen hast.

      PS: ich kenne mich in HTML sehr wohl aus, habe nur noch paar Probs mit PHP, das ist alles. Ansonsten ist eh alles leicht. Also soll mir NIEMAND, aber auch wirklich niemand unterstellen ich würde mich nicht auskennen usw.

      Sorry, aber wenn du sagt, dass du in ein <title> Variablen einfügen wolltest - im Frameset - und diese dann bei aufruf einer Content seite verwändern willst hast du einfach etwas prinzipielles nicht verstanden.

      Gruß
      Alex

      1. Hi,

        Du hast bei einer Frame-Website vielleicht weniger KB zu übertragen. Aber ich denke, dass ist irrelevant.

        Und unwahrscheinlich.
        Ich gehe mal von 2 Frames aus (eins mit der Navigation, eins für die Inhalte):

        Statt einem HTML-overheads (Doctype, <html>, <head>, <title> + closing tags) hat man schon 3 (1 im Frameset, 2 in den Frames).
        Gleiches gilt für die HTTP-Header - statt 2 (1 mal Request, 1 mal Response) hat man 6.
        In jeder der in den Frames dargestellten Seiten sollte sich ein Javascript befinden, das das zugehörige Frameset nachlädt.
        Und außerdem noch in einem Noscript-Element jeweils ein Link, der zum Nachladen des Framesets dient, falls kein Javascript verfügbar ist.
        Statt nur eines link-Elements für das CSS wird dieses Element einmal zusätzlich benötigt (für den Navi-Frame).
        Dazu noch der HTML-Code für das eigentliche Frameset, der ohne Frames ja auch nicht benötigt wird.

        Wenn man auf Frames verzichtet, muß man bei jeder Seite die Navigation neu laden (statt sie permanent im Frame zu haben).
        Bei der ersten Seite hat man ohne Frames eindeutig weniger Code zu übertragen (Frameset, HTML des Navigationsframes mit Ausnahme der ul mit der eigentl. Navigation).
        Allzu groß ist der Quelltext der Navigation üblicherweise auch nicht.
        Ein bis 2 KB.
        Die obengenannten Punkte dürften sich auf eine Handvoll KB summieren.

        Erst nach ein paar Seiten käme man dann ohne Frames auf mehr Datenvolumen als ohne.

        Aber: die erste Seite braucht länger zum Laden - Browser holen nicht beliebig viele Resourcen gleichzeitig von einem Server.
        Nach dem Laden des Framesets sind mind. 2 Requests schon für die beiden Seiten im Frame belegt.

        Die ein bis zwei KB, die pro Seite (aber innerhalb desselben Requests wie die Seite) mehr zu übertragen sind, fallen nicht ins Gewicht - schädlicher sind die zusätzlichen Requests bei Frames ...

        Beim Aufruf der Seite hast du schon den Nachteil, dass 1. das Frameset und dann jeder Frame geladen werden muss. Hier hast du dann 2 unnötige Requests, die schädlicher sind als ein paar KB mehr.

        Eben, die ganzen anderen Nachteile der Frames sind ja auch noch da ...

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
    2. Hi,

      PS: ich kenne mich in HTML sehr wohl aus [...] Also soll mir NIEMAND, aber auch wirklich niemand unterstellen ich würde mich nicht auskennen usw.

      Aus einem der anderen Postings:

      habe es sogar versucht mit <form>-Tags in der title-Tag zu arbeiten

      Dies zeigt, daß die Behauptung, Du würdest Dich mit HTML nicht auskennen, keine Unterstellung (= falsche Behauptung) ist. Sondern eine Tatsachenfeststellung.

      Du sprichst von tags, obwohl Du elements meinst (oder meintest Du tatsächlich <title <form>>?). Und wenn Du Dich mit HTML auskennen würdest, wüßtest Du, daß im title-Element keine anderen Elemente vorkommen dürfen (im tag sowieso nicht ...).

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      O o ostern ...
      Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.