document.all.....??
Dani
- javascript
Hallo!
Kann mir jemand sagen, warum dieses Script mit Netscape-Browsern nicht läuft??
Es soll ganz einfach der Hintergrund einer Tabellen-Zelle geändert werden.
Fehler bei Netscape 6: "document.all has no properties"
Oder allgemein gefragt: Wie kann ich mit JavaScript am besten auf Tags zugreifen, sodass es auch bei Netscape funktioniert??
Hier der Auszug:
----------------
<script language="JavaScript">
var coloron = "#adff2f";
function ChangeTabColorOn(zellnr)
{
document.all[zellnr].style.backgroundColor = coloron;
}
</script>
<table border=o cellpadding=0 cellspacing=0 widht=130>
<tr>
<td align="center" id="topic1" onmouseover="ChangeTabColorOn('topic1')">
menu-punkt</td>
</tr>
</table>
Sup!
Wenn Du SelfHTML gelesen hättest, würdest Du wissen, daß es bei Netscape kein document.all gibt.
document.all ist IE4-Syntax und nicht standardkonform - darum kennt Netscape 6 es auch nicht.
auf Elemente greift man bei Netscape mit der ID zu:
document.getElementById("id").bla()
Ich habe leider gerade keine Lust, das genau zu erklären, sorry.
Gruesse,
Bio
Morgen !
auf Elemente greift man bei Netscape mit der ID zu:
document.getElementById("id").bla()
Ich habe leider gerade keine Lust, das genau zu erklären, sorry.
Aber ich:
Die Unterobjekte von document.getElementById() sind praktisch die gleichen wie bei document.all, nur daß es jetzt halt getElementById heißt und nicht mehr all.
Dokumentiert ist das getElementById-Dings beim W3c (http://www.w3c.org) und M$ (http://msdn.microsoft.com).
Mit Netscape 4 schaut's da übrigens sehr düster aus, der kann nämlich keins von beiden.
:-)
Ciao,
Harry
Mit Netscape 4 schaut's da übrigens sehr düster aus, der kann nämlich keins von beiden.
Stimmt, dafür hat Netscape 4.x document.layer. Wenn Du also für alle Browser coden willst mußt Du
für IE 4.x document.all
für NN 4.x document.layer
für IE 5.x document.all oder document.getElementById
für NN 6.x document.getElementById
nehmen.
Rauskriegen, welcher Browser was kann, machst Du am besten so:
if (document.all){
document.all.....
}
usw.
Gruß
Henry
Tag
Mit Netscape 4 schaut's da übrigens sehr düster aus, der kann nämlich keins von beiden.
Stimmt, dafür hat Netscape 4.x document.layer. Wenn Du also für alle Browser coden willst mußt Du ...
was ich sagen wollte ist:
Mit .all und .getElementById kann ich praktisch jede Kleinigkeit ändern, und das noch dazu von praktisch jedem Element.
Mit Netscape 4 bin ich dagegen doch sehr eingeschränkt, da ich nur grundlegende Eigenschaften (auch nicht immer, z.B. Breite von Bildern), nicht aber Detailangaben zur Laufzeit ändern kann.
Und außerdem heißt das Ding document.layers, mit "s" hinten. Das hat heut schon mal einer verbockt ;-)
Ciao,
Harry
Und außerdem heißt das Ding document.layers, mit "s" hinten. Das hat heut schon mal einer verbockt ;-)
Ich wollt ja nur schauen, obs einer merkt..... :-)
Stimmt aber, war´n Fiptehler.
Gruß
Henry