Hej Tim
Tim Sørensen wrote:
> Hvad er der galt med dette:
> <td style="cursor:hand" width="20%" align="center" id="forsiden"
> onmouseover="document.all('forsiden').bgcolor='#ff0000'">
Først og fremmest skal du være opmørksom på, at hvor HTML ikke er
case-sensitive, så er JavaScript altså! Det virker derfor kun hvis du
skriver bgColor i stedet for bgcolor.
Desuden har jeg et par andre bemærkninger til hvordan du kan forbedre
koden...
En cursor af typen "hand" er en non-standard Microsoft opfindelse. W3C
standarden siger at du skal bruge "pointer" i stedet. Netscape og
Mozilla understøtter f.eks. ikke "hand". Desværre understøtter IE heller
ikke "pointer", men der er en work-around så det virker både i Internet
Explorer og browsere der følger W3C standarden. Du angiver bare begge,
men bemærk at det *skal* være i følgende rækkefølge:
style="cursor: pointer; cursor:hand"
Din mouseover farve-effekt virker dog stadigvæk kun i Internet Explorer
fordi du bruger document.all[]. Normalt bør du i stedet for
document.all[] bruge document.getElementById() funktionen som er en del
af W3C standarden og er understøttet af Internet Explorer 5+, Netscape
6+, Opera 5+, Konqueror, Mozilla, m.fl. Du mister dog så umiddelbart
understøttelse af Internet Explorer version 4, men hvis den er vigtig
kan du bruge kode a'la:
if (document.getElementById) // W3C kompatibel browser
document.getElementById('forsiden').bgColor = '#FF0000'
else if (document.all) // Internet Explorer version 4
document.all['forsiden'].bgColor = '#FF0000';
I dette tilfælde kan det dog gøres meget simplere, da det er elementet
selv du ønsker at ændre attributter på. Du kan bruge "this" og i stedet
skrive din kode bare:
<td style="cursor: pointer; cursor:hand" width="20%" align="center"
onmouseover="this.bgColor='#ff0000'">
Til slut vil jeg da i øvrigt foreslå at overveje at droppe bgColor og
bruge en style i stedet.
--
Mvh. Stig
stig[at]rockland[dot]dk
http://www.rockland.dk/
* Bedre (D)HTML ?! -->
http://www.rockland.dk/stig/upghtml.html *