Firefox: JavaScript Fehler “has no properties”
Heute habe ich mindestens eine halbe Stunde meine Zeit verschwendet um die Lösung für den Fehlercode “getElementById(’id’) has no properties” zu finden. Der Name des ID-Attributes war korrekt und es war auch Inhalt in dem Element.
Die Lösung:
Firefox muss zuerst den HTML-Code laden und dann erst den JavaScript-Code. Somit kennt Firefox alle Namen der ID-Attribute und kann durch das nachfolgende JavaScript die Eigenschaften verändern.
falsch ist es also so:
1 <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN”
“http://www.w3.org/TR/html4/strict.dtd”>
2 <html>
3 <head>
4 <title>Firefox: JavaScript Fehler “has no properties”</title>
5 <script type=”text/javascript”>
6 document.getElementById(’text’).style.display = “none“;
7 </script>
8 </head>
9 <body>
10 <div id=”text”>
11 geheimer Text
12 </div>
13 </body>
14 </html>
dies ist eine Lösung:
1 <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN”
“http://www.w3.org/TR/html4/strict.dtd”>
2 <html>
3 <head>
4 <title>Firefox: JavaScript Fehler “has no properties”</title>
5 <script type=”text/javascript”>
6 window.onload = zauberei;
7 function zauberei() {
8 document.getElementById(’text’).style.display = “none“;
9 }
10 </script>
11 </head>
12 <body>
13 <div id=”text”>
14 geheimer Text
15 </div>
16 </body>
17 </html>
Man kann allerdings auch den JavaScript-Bereich erst am Ende des HTML-Dokumentes einfügen. Da aber bei Selfhtml steht, dass der JavaScript-Bereich immer in den Kopf-Bereich (<head>) soll, ist die obere Lösung die bessere.