iFrame
Anonym
- html
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
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
Was ist mit PHP, JS etc.?
oder kann man Variablen oder so senden?
Da muss es doch irgendwas geben
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
ok,
und wo erkennt er den aktiven Link
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
habs in DW hinbekommen.
Mann super echt!
DANKE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@Anonym:
nuqneH
DANKE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Nicht DAFÜR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
L(in)uchs’ Antwort war dermaßen schlecht, schlechter geht’s kaum.
Qapla'
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
Liebe Freunde,
ok. Tolle Stimmung hier :)
Also geklappt hats. Aber ich kann als Anfänger nicht nachvollziehen welche Gefahr konkret ich jetzt habe?
LG
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.
@@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.
%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'
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.
@@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'
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
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
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
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
@@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'