Frame Navigation mit markierten Links
Steffen Lenz
- javascript
Hi!
Ich bion echt verzweifelt. Nach Stundenlanger Suche, hab ich immer noch keine Lösung für mein Problem gefunden.
Ich hab ne Webseite erstellt, die in mehrere Frames aufgeteilt ist. Der linke, äußere Frame beinhaltet die Navigationslinks. Diese verweisen auf weitere Frames, in denen weitere Navigationslinks enthalten sind. Das funktioniert alles einwandfrei.
Mein Problem ist, daß ein angeklickter Link mit einer bestimmten Hintergrundfarbe markiert werden soll. Diese Markierung soll auch beibehalten werden, wenn in einem anderen Frame ein Link angeklickt wird.
Ich hoffe, ihr könnt mir helfen.
Gruß
Lenzibaer
Hi
Mein Problem ist, daß ein angeklickter Link mit einer bestimmten Hintergrundfarbe markiert werden soll. Diese Markierung soll auch beibehalten werden, wenn in einem anderen Frame ein Link angeklickt wird.
Das wird nicht funktionieren. Schuld daran sind die Frames. Du kannst die Navigation aber in die Seite einfügen und den entsprechenden Link farblich hervorheben. Dann müsstest du aber jedesmal wenn du einen neuen link hinzufügst, diesen auf allen Seiten neu hinzufügen. Gegenhilfe bilden sprachen wie javascript: Tipp: Such dir ein fertiges Script.
Tipp2: Benutz keine Frames...
Gruss
Hamza
Tipp: Such dir ein fertiges Script.
Tipp2: Benutz keine Frames...
Gruss
Hamza
ich such nun schon seit Tagen nach nem Script und hab noch kein passendes gefunden.
In nem anderen Forum hat mir jemand folgendes vorgeschlagen:
var iMarkedLink = null;
function setBackground( id) {
oElement = document.getElementById( id);
if (oElement != null) {
if ( iMarkedLink != null) {
document.getElementById( iMarkedLink).style.background-color = "white";
}
oElement.style.background-color = "red";
iMarkedLink = id;
}
}
.....
<a href="jkadfjasjdfkl" onclick="setBackground( this);">mein link</a>
<a href="asdasdfjasjdfkl" onclick="setBackground( this);">mein link2</a>
<a href="jkadfjcxvcdfkl" onclick="setBackground( this);">mein link3</a>
Leider hab ich das nicht zum laufen gebracht.
Gruß
Lenzibaer
Hallo Steffen,
In nem anderen Forum hat mir jemand folgendes vorgeschlagen:
[...]
Leider hab ich das nicht zum laufen gebracht.
Das ist ein generelles Problem fremder Scripts. Wieviel Ahnung hast du denn von Programmierung im Allgemeinen, und javascript im Besonderen?
var iMarkedLink = null;
function setBackground( id) {
oElement = document.getElementById(id);
Das du mit frames arbeitest solltest du auch den korrekten Pfad zum Dokument angeben. Das macht es einfacher, da das Script dann auch in einem anderen Frame liegen kann.
parent.frames.DerName.document.getElementById
if (oElement != null) {
if ( iMarkedLink != null) {
document.getElementById( iMarkedLink).style.background-color = "white";
s.o.
<a href="jkadfjasjdfkl" onclick="setBackground( this);">mein link</a>
getElementById(id) benötigt eine? Du ahnst es sicher. Eine ID! Und selbige vermisse ich.
<a href="..." id="link1" ...
Letztere sollte dann auch an die Funktion setBackground() übergeben werden. <a href="..." id="link1" onclick="setBackground('link1');"
Viel Spaß, bei Bedarf kannst du hier http://www.maxx4u.de/drweb/frames/links/index2.html noch spicken.
Jochen
hi,
danke für deine Hilfestellung.
Ich hab das Script, wie du empfohlen hast angepasst, und auch dein Script verwendet.
Bei beiden Scripten funktioniert die Änderung der Schriftgröße, jedoch lässt sich der Hintergrund nicht ändern. Ich habe dazu einfach "fontWeight" durch "backgroundcolor" ersetzt. Dies funktioniert aber nicht.
Hast du ein Tipp?
Gruß
Lenzibaer
Hallo,
Ich habe dazu einfach "fontWeight" durch "backgroundcolor" ersetzt. Dies funktioniert aber nicht.
Hast du ein Tipp?
http://selfhtml.teamone.de/dhtml/modelle/microsoft.htm#css_schreibweise
CSS: font-weight; javascript: fontWeight
CSS: background-color; javascript: erkennst du deinen Fehler?
HTH
Jochen
erkennst du deinen Fehler?
aaaaaaaaarrrrrrrrrrghhhhh!
Ich könnt mir in den A.... beissen! Danke! Ich bin schon fast verzweifelt, und dann liegt es an dieser blöden Schreibweise. Ich hab zwar gewusst, daß es "backgroundcolor" heißen muss, aber nicht "backgroundColor".
Ich danke dir.
Beste Grüße
Lenzibaer
Hallo Steffen,
Mein Problem ist, daß ein angeklickter Link mit einer bestimmten Hintergrundfarbe markiert werden soll. Diese Markierung soll auch beibehalten werden, wenn in einem anderen Frame ein Link angeklickt wird.
das ist ein recht allgemein gehaltenes Problem.
Daher auch nur ein kurze Antwort:
Du benötigst das onClick event, eine Prise javascript, gewürzt mit etwas CSS
http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#onclick
http://selfhtml.teamone.de/javascript/objekte/document.htm#get_element_by_id
http://selfhtml.teamone.de/css/eigenschaften/hintergrund.htm#background_color
Hast du denn bereits etwas? Das würde die Sache etwas vereinfachen.
Grüße,
Jochen
Hi,
zunaechst mal ein kleiner Test, wie Du per Javascript und Css die Bg-Farben der Links veraendern kannst:
---------
<html>
<head>
<style type="text/css">
.class1,a {background-color: red; color: white;}
.class2 {background-color: blue; color: white;}
</style>
<script language="javascript" type="text/javascript">
function change_bg(id) { if(document.documentElement)document.getElementById(id).className="class2";
}
</script>
</head>
<body>
<a id="lnk1" onclick="change_bg('lnk1')" href="#">Erster Link</a><br>
<a id="lnk2" onclick="change_bg('lnk2')" href="#">Zweiter Link</a><br>
<a id="lnk3" onclick="change_bg('lnk3')" href="#">Dritter Link</a>
</body>
</html>
-------
Du uebergibst einfach eine id, und weist ihr eine andere Klasse zu. Man koennte auch einfach this uebergeben, und sich den Zugriff ueber Dom sparen, aber so kannst Du auch aus einem Nachbarframe auf diese Funktion zugreifen - sofer Du eine korrekte id uebergibst. Referentierungen zwischen Frames findest Du in der hiesigen Doku.
Gruesse Joachim