Anonym: iFrame

Hallo ich benutze als Menü einen iFrame mit _top URLS, sodass ich das Menü einmal in allen Dateien ändern kann.
Aber wie bekomme ich heraus, was gerade die aktive URL ist, um dann die Farben anzupassen?

LG

  1. Hallo ich benutze als Menü einen iFrame mit _top URLS, sodass ich das Menü einmal in allen Dateien ändern kann.
    Aber wie bekomme ich heraus, was gerade die aktive URL ist, um dann die Farben anzupassen?

    Im Prinzip gut, dass du kein frame benutzt. Auf jeder deiner Seiten wird also das Menu im iframe gezeigt. Das Menü ist eine vollkommen selbstständige Internetseite, die du auch allein aufrufen kannst.

    Wie kannst du mit HTML/XHTML Mitteln den Inhalt einer Webseite beim Aufruf beeinflussen?

    Gar nicht. HTML/XHTML ist statisch.

    Gruß, L(in)uchs

    1. Was ist mit PHP, JS etc.?

      oder kann man Variablen oder so senden?
      Da muss es doch irgendwas geben

      1. Was ist mit PHP, JS etc.?

        Ja klar, wenn das Menü eine php Seite ist, kannst du beim Aufruf Parameter - etwa die Farbe - übergeben in der Form

        <iframe src="http://example.com/menu.php?farbe=rot" ...

        Und im CSS der Datei menu.php

        body {color:<? if ( $_GET['farbe']=="rot" ) echo "#f00"; ?>}

        (Habe nicht gestestet, ob Zeichen wie # als Parameter gültig sind. Wenn ja, geht's auch variabler ohne if:

        <iframe src="http://example.com/menu.php?farbe=#f00" ...
        body {color:<? echo $_GET['farbe']; ?>}

        L(in)uchs

        1. ok,

          und wo erkennt er den aktiven Link

          1. ok,

            und wo erkennt er den aktiven Link

            Ich hatte verstanden, dass du Schrift- und Hintergrundfarben anpassen wolltest. Du willst also den geklickten Menüpunkt farblich absetzen?

            Dann muss jede Seite einzeln dem Menü per Parameter mitteilen, welcher Link hervorgehoben werden soll.

            Datei seite1.htm:
            <iframe src=".../menu.php?seite=1" ...

            Datei seite2.htm:
            <iframe src=".../menu.php?seite=2" ...

            Datei menu.php:
            <a href=".../seite1.php" style="color:<? if ($_GET['seite']==1) echo "#f00"; ?>>zu Seite 1</a>
            <a href=".../seite2.php" style="color:<? if ($_GET['seite']==2) echo "#f00"; ?>>zu Seite 2</a>

            (Nur aus dem Kopf, nicht getestet)

            L(in)uchs

            1. habs in DW hinbekommen.
              Mann super echt!

              DANKE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

              1. @@Anonym:

                nuqneH

                DANKE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                Nicht DAFÜR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                L(in)uchs’ Antwort war dermaßen schlecht, schlechter geht’s kaum.

                Qapla'

                --
                Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
                1. L(in)uchs’ Antwort war dermaßen schlecht, schlechter geht’s kaum.

                  Auch meine Anfänger-Fragen wurden vor Jahren hier von Oberlehrern mit verlinktem, seitenlangem Code beantwortet, den ich nicht durchblickte. Der aber vermutlich korrekt war und alle Angriffe böser Buben abwehren konnte. Mit Browserweichen für die seltsamsten Konstellationen.

                  Geholfen haben mir aber kleine AHA- Erlebnisse.

                  L(in)uchs

                  1. Liebe Freunde,

                    ok. Tolle Stimmung hier :)
                    Also geklappt hats. Aber ich kann als Anfänger nicht nachvollziehen welche Gefahr konkret ich jetzt habe?

                    LG

                    1. Tach!

                      Also geklappt hats. Aber ich kann als Anfänger nicht nachvollziehen welche Gefahr konkret ich jetzt habe?

                      Welche(n) der Kritikpunkte kannst du denn nicht nachvollziehen? Das Problem an fehlerhaften Dingen ist, dass man oft nicht direkt die Auswirkungen vorhersagen kann. Es kann sein, dass es jemand ausnutzt oder ein System daraufhin nicht wunschgemäß arbeitet, es kann jedoch auch sein, dass es niemand bemerkt. Ist es schlimm, die Fehler gleich von vornherein zu vermeiden/auszubessern?

                      Punkt echo $_GET[...]
                      Ausgaben ohne Kontextwechsel-Berücksichtigung ist einer der häufigsten begangenen und ausgenutzten Fehler, andererseits recht einfach zu vermeiden. Vielleicht ist es weniger wichtig, wenn jemand deine Seite mit ungewünschten Inhalten füllt. Aber wenn du das Prinzip nicht verstanden hast, machst du denselben Fehler an anderen Stellen, bei denen es kritischer ist.

                      Punkt <? echo
                      Das ist mehr oder weniger ein Schönheitsfehler.

                      Punkt ungültiger CSS-Code.
                      Fehlerhafter Code wird durch Browser teilweise korrigiert. Doch das Ergebnis ist üblicherweise nicht vorhersagbar. Die einen korrigieren es so, die anderen anders, und Folgefehler können auch noch auftreten. Es ist daher besser, möglichst korrekten Code zu schreiben/erzeugen.

                      dedlfix.

        2. @@L(in)uchs:

          nuqneH

          Ja klar, wenn das Menü eine php Seite ist, kannst du beim Aufruf Parameter - etwa die Farbe - übergeben in der Form

          <iframe src="http://example.com/menu.php?farbe=rot" ...

          Das ist völlig sinnfrei. Wenn sowieso PHP verwendet wird, kann man damit gleich das Menü in die Seiten einbinden. Ohne eine solche Krücke.

          Aber zu deiner „Lösung“ gibt es dennoch einiges anzumerken, was so falsch nicht stehenlassen kann:

          body {color:<? if ( $_GET['farbe']=="rot" ) echo "#f00"; ?>}

          Und wenn die Bedingung nicht erfüllt ist, steht mit body {color:} ungültiger CSS-Code im Dokument.

          (Habe nicht gestestet, ob Zeichen wie # als Parameter gültig sind.

          leitet in einem URI den Fragment-Identifier ein; in einem Parameter darf # nicht vorkommen. Wenn ein Wert ein # enthält, muss dieses Zeichen (Unicode-Codepoint U+0023) prozent-escapet werden: %23.

          body {color:<? echo $_GET['farbe']; ?>}

          Kapitaler Anfängerfehler! Du darfst NIEMALS Nutzereingaben unbearbeitet in HTML-Code schreiben. Sicherheitslücke!

          $_GET-Werte musst du vor der Ausgabe mit echo zumindest mit [link:http://de2.php.net/manual/de/function.htmlspecialchars.php@title=htmlspecialchars()] behandeln.

          Qapla'

          --
          Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
          1. Hallo, Gunnar,

            ich wollte einem PHP- Anfänger die ersten Schritte erleichtern.

            body {color:<? if ( $_GET['farbe']=="rot" ) echo "#f00"; ?>}

            Und wenn die Bedingung nicht erfüllt ist, steht mit body {color:} ungültiger CSS-Code im Dokument.

            Ja und - brennt dann die Hütte ab?

            leitet in einem URI den Fragment-Identifier ein;

            Ja, gut, hatte ich doch im Urin, dass da ein Fettnäpfchen steht.

            1. @@L(in)uchs:

              nuqneH

              ich wollte einem PHP- Anfänger die ersten Schritte erleichtern.

              Einem Anfänger was von <? [code lang=php]echo $_GET[…]; ?>[/code] zu erzählen, ist keine Erleichterung, sondern kreuzgefährlich.

              Besonders, weil sich der Anfänger dessen nich bewusst ist. Er übernimmt das und schaut womöglich nicht mehr ins Forum hinein, bekommt also die Berichtigung gar nicht mehr mit.

              Antwortende dürfen kein gefährliches Halbwissen verbreiten!

              Im übrigen ist <? [code lang=php]echo[/code] recht sinnfrei. Entweder man benutzt keine Shorttags (die bessere Variante), dann also <?php [code lang=php]echo[/code]; oder man benutzt sie – dann aber richtig! <?=

              […] ungültiger CSS-Code im Dokument.
              Ja und - brennt dann die Hütte ab?

              Es ist nie eine gute Idee, ungültigen Code zu generieren. Sieht die Darstellung mal nicht wie erwartet aus, schimpft man auf mangelnde Browserunterstützung oder Browserbugs. Mit etwas Glück kommt man nach endlos vertaner Zeit doch noch drauf, dass der Fehler aus dem eigenen Code stammt.

              Das sollte man von Anfang an vermeiden. Ist hier ja auch einfach: 'color:' mit ins 'echo'. Oder ein Else-Zweig.

              Qapla'

              --
              Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
    2. Hi,

      Hallo ich benutze als Menü einen iFrame mit _top URLS, sodass ich das Menü einmal in allen Dateien ändern kann.
      Aber wie bekomme ich heraus, was gerade die aktive URL ist, um dann die Farben anzupassen?

      Im Prinzip gut, dass du kein frame benutzt.

      Ein iframe IST ein frame.

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      O o ostern ...
      Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
      1. Ein iframe IST ein frame.

        Naja, so ungefähr wie ein Erdbeerwein ein Wein ist ;-)

        Ich wollte das im iframe eingebundene Menü loben, weil jede aufgerufene Seite ein Menü hat.

        Anders als die Seiten, wo das Menü eine HTML Datei in ein Nichtiframeframe lädt. Diese Seiten - etwa bei Google gefunden - stehen ohne Menü und damit oft ohne Absender und Bezug da.

        Oder auch hier.

        L(in)uchs

        1. Hi,

          Ich wollte das im iframe eingebundene Menü loben, weil jede aufgerufene Seite ein Menü hat.
          Anders als die Seiten, wo das Menü eine HTML Datei in ein Nichtiframeframe lädt. Diese Seiten - etwa bei Google gefunden - stehen ohne Menü und damit oft ohne Absender und Bezug da.

          Das Prinzip ist dasselbe - das Menü befindet sich NICHT im eigentlichen HTML-Dokument.

          cu,
          Andreas

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

    Hallo ich benutze als Menü einen iFrame mit _top URLS, sodass ich das Menü einmal in allen Dateien ändern kann.

    Sinnvoller wäre es, den Quelltext anderweitig auszulagern: http://forum.de.selfhtml.org/hilfe/faq.htm#quelltext-auslagern

    cu,
    Andreas

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

      nuqneH

      Sinnvoller wäre es, den Quelltext anderweitig auszulagern: http://forum.de.selfhtml.org/hilfe/faq.htm#quelltext-auslagern

      Und die serverseitige Technik kann dann auch gleich dafür sorgen (Vergleich Ziel-URI mit URI der aktuellen Seite), dass die aktuelle Seite im Menü nicht verlinkt wird. (Punkt 10 der zehn meist-missachteten Homepage-Design-Richtlinien [Nielsen])

      Qapla'

      --
      Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)