Hallo,
ich versuche eine Tabellenzelle so zu konfigurieren, dass beim Mousover die Hintergrundfarbe geändert wird. Wenn ich den <a href...> in die Zelle schreibe gilt der Mouseover nur bis zu Ende des Zelleninhaltes. Es soll aber auch funktionieren wenn die Zelle leer ist. Im Explorer funktioniert das super nur im Netscape nicht. Was mache ich falsch?
Das Javascript (ausgelagert):
function farbe_zelle(id,farbe) {
if (document.all)
document.all[id].style.backgroundColor=farbe;
else
if (document.getElementById)
document.getElementById(id).style.backgroundColor=farbe;
else
if (document.layers)
document.layers[id].bgColor=farbe;
}Die Tabellenzelle:
<a href="formel1.php" target="_self"
onMouseOver="farbe_zelle('Zelle1','#6386C7')"
onMouseOut="farbe_zelle('Zelle1','#2C4F90')"><td id="Zelle1" style="position:relative" bgcolor="#2C4F90">
<font face="Arial" size="-1">Formel 1</font>
</td>
</a>
Danke schon mal im Voraus.
Tom
Die CSS Struktur stimmt leider nicht überein, Du musst also browserabhängig reagieren (NS kennt z.B. "style" nicht).
Der beste Weg (hab ich mal bei Macromedia gelernt) ist, abhängig vom Browser Scriptvariablen zu setzen und diese dann mit eval() aufzulösen.
Beispiel (nicht getestet aber so funktioniert das Prinzip):
// Browserabhängig initialisieren
function init(){
if (navigator.appName == "Netscape") {
var layerRef="document.layers";
var styleSwitch="";
}else{
var layerRef="document.all";
var styleSwitch=".style";
}
}
// Variablen mit eval() verwenden
function farbe_zelle(id,farbe) {
eval(layerRef+'["'+id+'"]'+styleSwitch+'.background-color="'+farbe+'"');
}