Hallo!
Folgende Situation:
Ich möchte eine komplette Tabellen-Zelle mit einem onClick versehen. Bei Click auf die Zelle, soll die Funktion menu() aufgerufen werden, in welcher dann
a) der Inhalt eines Frames geändert wird
b) sich die Hintergrundfarbe der Zelle ändert (damit wird die Zelle als "aktiv" gekennzeichnet
c) in der vorherig "aktiven" Zelle wird auch die Hintergrundfarbe geändert; dadurch wird diese als "inaktiv" gekennzeichet
d) ändern sich auch noch in den beiden betroffenen Zellen (die "aktive" und die "inaktive") hinterlegte Grafiken
Soweit so gut. Im IE6 funktioniert das Ganze. Nur im NS7.1/Moz1.4 nicht. Wie ich herausgefunden habe, wird die Funktion menu() noch nicht mal aufgerufen, wenn ich auf die entsprechende Zelle klicke. Hier der Quelltext:
------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<script language="Javascript">
var flag = "news";
var page_marker = 1;
var item = new Array();
var button = new Array();
button["news"] = "http://www.schildersmilies.de//menu/news.gif||http://www.schildersmilies.de/menu/news_bw.gif||http://www.schildersmilies.de/news.html||||#DDCCBB||";
button["list"] = "http://www.schildersmilies.de/menu/liste.gif||http://www.schildersmilies.de/menu/liste_bw.gif||http://www.schildersmilies.de/listofsmile.html||||#DDCCBB||";
button["sonst"] = "http://www.schildersmilies.de/menu/sonstiges.gif||http://www.schildersmilies.de/menu/sonstiges_bw.gif||http://www.schildersmilies.de/sonstiges.html||||#DDCCBB||";
button["guest"] = "http://www.schildersmilies.de/menu/gbuch.gif||http://www.schildersmilies.de/menu/gbuch_bw.gif||http://www.1-2-3-gaestebuch.de/buch.gb?benutzer=LongTom||||#DDCCBB||";
button["english"] ="http://www.schildersmilies.de/menu/english.gif||http://www.schildersmilies.de/menu/english_bw.gif||http://www.schildersmilies.de/fillFrame.html||||#DDDDBB||#BBBB77";
button["public_lt"] ="http://www.schildersmilies.de/menu/public.gif||http://www.schildersmilies.de/menu/public_bw.gif||http://www.schildersmilies.de/fillFrame.html||LongTom||#BBCCDD||#7799BB";
button["inside_lt"] ="http://www.schildersmilies.de/menu/inside.gif||http://www.schildersmilies.de/menu/inside_bw.gif||http://www.schildersmilies.de/fillFrame.html||LongTom||#BBCCDD||#7799BB";
button["simple_lt"] ="http://www.schildersmilies.de/menu/noschild.gif||http://www.schildersmilies.de/menu/noschild_bw.gif||http://www.schildersmilies.de/fillFrame.html||LongTom||#BBCCDD||#7799BB";
button["simpson_lt"] ="http://www.schildersmilies.de/menu/simpsons.gif||http://www.schildersmilies.de/menu/simpsons_bw.gif||http://www.schildersmilies.de/fillFrame.html||LongTom||#BBCCDD||#7799BB";
button["public_do"] ="http://www.schildersmilies.de/menu/public.gif||http://www.schildersmilies.de/menu/public_bw.gif||http://www.schildersmilies.de/fillFrame.html||dooya||#BBDDBB||#77BB77";
button["inside_do"] ="http://www.schildersmilies.de/menu/inside.gif||http://www.schildersmilies.de/menu/inside_bw.gif||http://www.schildersmilies.de/fillFrame.html||dooya||#BBDDBB||#77BB77";
item = button[flag].split("||");
function menu(id)
{
document.write("Hallo");
if (flag != id)
{
page_marker = 1;
if (id == "first")
id = flag;
frames[0].location = (button[id].split("||"))[2];
if (navigator.appName == "Netscape") flag = id;
document.images[flag].src = item[1];
document.getElementsByTagName('td')[flag].style.backgroundColor = "DEDEDE","true";
if (item[3].length > 0)
document.getElementsByTagName('td')[item[3]].style.backgroundColor = "DEDEDE","true";
flag = id;
item = button[flag].split("||");
document.images[flag].src = item[0];
document.getElementsByTagName('td')[flag].style.backgroundColor = item[4],"true";
if (item[3].length > 0)
document.getElementsByTagName('td')[item[3]].style.backgroundColor = item[4],"true";
}
}
function goto(section,page)
{
if (section != flag)
{
menu(section);
flag = section;
}
page_marker = page;
frames[0].location = "http://www.schildersmilies.de/fillFrame.html";
}
function homesweethome()
{
window.location="http://www.schildersmilies.de/deifis.html";
}
</script>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="000000" ALINK="#FF00FF" LINK="#0000ff" VLINK="#FF0000">
<center><img SRC="http://www.schildersmilies.de/banner/banner_schildersmilies.gif" alt="" border=0></center>
<table style="margin-top:2;border:solid 1 #555555;">
<colgroup>
<col width="5%" span="5">
<col width="5%" span="2">
<col width="5%" span="5">
</colgroup>
<tr align="center" bgcolor="#DEDEDE">
<td id = "LongTom" onClick="menu('lt_public')" colspan=4><img src="http://www.schildersmilies.de/menu/longtom_txt.gif" alt="Long Tom"></td>
<td id = "dooya" onClick="menu('do_public')" colspan=2><img src="http://www.schildersmilies.de/menu/dooya_txt.gif" alt="dooya"></td>
<td id = "english" onClick="menu(this.id)" rowspan=2><img name = "english" src="http://www.schildersmilies.de/menu/english_bw.gif" alt="English Smileys"></td>
<td id = "news" onClick="menu(this.id)" rowspan=2><img name = "news" src="http://www.schildersmilies.de/menu/news_bw.gif" alt="News" ></td>
<td id = "list" onClick="menu(this.id)" rowspan=2><img name = "list" src="http://www.schildersmilies.de/menu/liste_bw.gif" alt="Liste aller Smilies"></td>
<td id = "sonst" onClick="menu(this.id)" rowspan=2><img name = "sonst" src="http://www.schildersmilies.de/menu/sonstiges_bw.gif" alt="Sonstiges" ></td>
<td id = "guest" onClick="menu(this.id)" rowspan=2><img name = "guest" src="http://www.schildersmilies.de/menu/gbuch_bw.gif" alt="Gästebuch" ></td>
</tr>
<tr align="center" bgcolor="#DEDEDE">
<td id = "public_lt" onClick="menu(this.id)"><img name = "public_lt" src="http://www.schildersmilies.de/menu/public_bw.gif" alt="Schildersmilies"></td>
<td id = "inside_lt" onClick="menu(this.id)" ><img name = "inside_lt" src="http://www.schildersmilies.de/menu/inside_bw.gif" alt="spezielle Schildersmilies"></td>
<td id = "simple_lt" onClick="menu(this.id)" ><img name = "simple_lt" src="http://www.schildersmilies.de/menu/noschild_bw.gif" alt="Smilies ohne Schilder"></td>
<td id = "simpson_lt" onClick="menu(this.id)" ><img name = "simpson_lt" src="http://www.schildersmilies.de/menu/simpsons_bw.gif" alt="The simpsons" ></td>
<td id = "public_do" onClick="menu(this.id)" ><img name = "public_do" src="http://www.schildersmilies.de/menu/public_bw.gif" alt="Allgemein" ></td>
<td id = "inside_do" onClick="menu(this.id)" ><img name = "inside_do" src="http://www.schildersmilies.de/menu/inside_bw.gif" alt="spezielle Schildersmilies"></td>
</tr>
</table>
<iframe style="border:solid 1 #555555;border-top-style:none;" frameborder=0 width="100%" height="75%" src="news.html">
Die besten und witzigsten Schildersmilies im Netz!
von Long Tom und dooya<br><br>
Keine Inline-Frames? <img src="http://www.schildersmilies.de/schilder/schade.gif" alt=""><br>
Deshalb hier das Wichtigste ;-)<br>
<b>Schildersmilies:</b><br>
<a href="http://www.schildersmilies.de/schildsmile.html">schildsmile.html</a><br>
<b>Smilies ohne Schild:</b><br>
<a href="http://www.schildersmilies.de/othersmilies.html">othersmilies.html</a><br>
<b>Smilies with english signs:</b><br>
<a href="http://www.schildersmilies.de/signsmile.html">signsmile.html</a><br>
<b>Smilies von dooya:</b><br>
<a href="http://www.schildersmilies.de/do_public.html">do_public.html</a><br>
<b>Komplette Liste aller Smilies:</b><br>
<a href="http://www.schildersmilies.de/listofsmile.html">listofsmile.html</a><br>
</iframe>
</BODY>
</HTML>
------------------------------------------------
Bei Click auf die Zelle wird mit onClick die ID des <td>-Tags übergeben. Mit dieser ID werden aus den im HEAD hinterlegten Definitionen von "Button" die entsprechenden Werte ausgelegt, und im Array item hinterlegt (die Trennung der Werte erfolgt durch split()).
Hat jemand eine Ahnung, warum dass im aktuellen NS/Moz nicht funktioniert? Ich weis nicht mehr weiter.
Schon mal danke an alle, die sich hiermit befassen.
Grüsse
Kai Uwe