Dynamischer Hintergrund von Frame
bastian
- javascript
0 XaraX
Hallo,
ich bin relativ ungebildet in JavaScript, habe aber den Verdacht das man mit JS mein Problem loesen kann. Habe ein Menue, welches aus verschiedenen Frames aufgebaut ist und moechte nun, dass sich die Hintergrundfarbe des Frames aendert, wenn der Link in diesem Frame aktiv ist.
Pseudomaessig soll das so aussehen:
JS:
function bg_color(){
if (link!= active){
bg_color von Frame1=grau
}
else{
bg_color von Frame1=weiss
}
}
}
HTML:
onLoad="bg_color()"
...
<a href....>link</a>
...
Hat jemand einen Tipp fuer mich ... geht das ueberhaupt ? Geht es so ? Muss ich den Linkstatus aus dem HTML ans JS uebergeben ?
Vielen Dank fuer die Hilfe ...
Gruss Bastian
Hallo Bastian,
im Sinne einer Trennung von Inhalt und Gestaltung wäre dabei vornehmlich dem <body> mittels CSS ein grauer Hintergrund zuzuweisen. Dabei hast Du dann die Möglichkeit auf das Objekt style des <body> zurückzugreifen und ihm per Event neue Eigenschaften zuweisen.
Um ein Element (in Deinem Falle <body>) mittels JavaScript zu selektieren kannst Du zum einen eine ID vergeben (<body id="ID_Bezeichnung">) und mit der Methode document.getElementById("ID_Bezeichnung") arbeiten, zum anderen kannst Du auch ohne ID arbeiten und mit der Methode document.getElementsByTagName("body")[0] arbeiten.
Ein Beispiel:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test</title>
<style type="text/css">
#ID_Bezeichnung {background:#999}
</style>
<script type="text/javascript">
function bg_color()
{
document.getElementById("ID_Bezeichnung").style.background="#fff";
}
</script>
</head>
<body id="ID_Bezeichnung">
<a href="#" onClick="bg_color()">Testclick</a>
</body>
</html>
Im Beispiel habe ich als Event-Handler onClick gewählt und würde Dir ebenso raten, diesen zu verwenden. Aber wie es mit dem erneuten Ergrauen des <body> aussehen soll, ist mir unklar. Man könnte ähnlich einem SelfHTML-Beispiel ebenso mit dem Objekt style verfahren, oder auf eine Event onMouseout im <body>, welches eine andere Funktion, die den <body> wieder grau werden ließe, zurückgreifen.
Gruß aus Berlin!
eddi