PsYcHo232: Firefox 3 Problem mit onMouseOver Funktion...

Beitrag lesen

Hallo Liebe Javascriptler ;-)
Bin leider neu hier, programmiere aber schon seit Jahren mit PHP. Habe im I-Net n kleines Script gefunden um TRs bzw. TDs mittels Javascript bei einer OnMouseOver Funktion farbig zu ändern... Klappt auch wunderbar, jedoch wenn ich die Funktion mit Mozilla Firefox (V3xxx) verwende, tritt folgender Fehler auf:

Wenn ich von einer markierten <tr> bzw <td> senkrecht die Mouse hoch in die obere oder untere <tr> bzw <td> bewege, färbt sich der komplette Hintergrund außerhalb der Tabelle in die "OnMouseOver-Farbe"... Wenn ich davor die Maus seitlich aus der Zeile bewege und dann in die unmarkierte Zeile bewege, treten keine Fehler auf...

Hier das JS Skript:

  
var highlightbehavior="TR"  
  
var ns6=document.getElementById&&!document.all  
var ie=document.all  
  
function changeto(e,highlightcolor){  
source=ie? event.srcElement : e.target  
if (source.tagName=="TABLE")  
return  
while(source.tagName!=highlightbehavior && source.tagName!="HTML")  
source=ns6? source.parentNode : source.parentElement  
if (source.style.backgroundColor!=highlightcolor&&source.id!="ignore")  
source.style.backgroundColor=highlightcolor  
}  
  
function contains_ns6(master, slave) { //check if slave is contained by master  
while (slave.parentNode)  
if ((slave = slave.parentNode) == master)  
return true;  
return false;  
}  
  
function changeback(e,originalcolor){  
if (ie&&(event.fromElement.contains(event.toElement)||source.contains(event.toElement)||source.id=="ignore")||source.tagName=="TABLE")  
return  
else if (ns6&&(contains_ns6(source, e.relatedTarget)||source.id=="ignore"))  
return  
if (ie&&event.toElement!=source||ns6&&e.relatedTarget!=source)  
source.style.backgroundColor=originalcolor  
}  

Und hier die HTML:

  
<html>  
<head><title>Eine Site</title>  
  <script type="text/javascript" src="./highlight_tr.js"></script>  
</head>  
<body>  
  
 <center>  
  
  <table onMouseover="changeto(event, '#d3bf13')" onMouseout="changeback(event, 'white')">  
   <tr><td>Hier befindet die erste Zeile</td></tr>  
   <tr><td>Hier befindet sich die zweite Zeile</td></tr>  
  </table>  
  
 </center>  
  
</body>  
</html>  

Da ich mit Javascript nicht viel am Hut habe und eig da auch nicht unbedingt recht viel tiefer eindringen will, wäre ich euch sehr dankbar wenn ihr mir beim Debuggen helfen könntet. Herzlichen Dank,

MFG:
PsYcHo232