Version am Objekt erkennen
Cheatah
- javascript
Hi,
für meinen Counter habe ich die verfügbare JavaScript-Version bisher wie folgt herausgefunden:
<script language=JavaScript>
js=1.0;
</script>
<script language=JavaScript1.1>
js=1.1;
</script>
<script language=JavaScript1.2>
js=1.2;
</script>
<script language=JavaScript1.3>
js=1.3;
</script>
In den jeweiligen Blöcken habe ich zusätzlich noch bestimmte Eigenschaften erfragt, z.B. Bildschirmgröße, Java usw.
Das möchte ich jetzt zusammenfassen, indem ich z.B. schreibe:
js=1.0;
if (document.images) js=1.1;
if (window.screen) js=1.2;
Jetzt meine Fragen:
Zu erwähnen ist vielleicht noch, daß ich abhängig von document.layers bzw. document.all die verfügbare Clientarea ermittele, ggf. kann die Abfrage also dort "nebenher" laufen. Der Code soll natürlich optimiert sein, also sowohl so kurz wie möglich als auch fehlerfrei auf allen Systemen :-)
Ach so, eins noch nebenbei: Eine Abfrage lautet
if (navigator.javaEnabled()) { java=1; }
Muß ich da noch ein "if (navigator.javaEnabled)" (ohne Klammern des Funktionsaufrufes) voranstellen, um Fehler bei JS-1.0-fähigen Browsern zu vermeiden, oder geht es auch so?
Danke,
Cheatah
Hallo Cheatah
Jetzt meine Fragen:
- Ist da grundsätzlich etwas gegen einzuwenden?
- Welche Objekte eignen sich am besten für die jeweiligen Versionen?
- Woran zum (zensiert) erkennt man v1.3?
1. meines Erachtens nicht. Du solltest dir halt bewusst sein, dass <script language="JavaScript1.x"> dem Browser die Entscheidung ueberlaesst, ob er sich an den Inhalt wagt, waehrend if(document.images) nur dieses Objekt abfragt, was aber nicht ausschliesst, dass der Browser JavaScript 1.1 (in diesem Fall) unvollstaendig implementiert hat und andere 1.1-Befehle nicht kennt.
2. Schwer zu sagen. Klassisch sind:
1.1 = if(document.images)
1.2 = if(screen)
3. Hmm, hab mich mit 1.3 noch nicht so beschaeftigt. Gibt es da ueberhaupt ein ganz neues JS-Objekt?
viele Gruesse
Stefan Muenz
Hi Stefan,
- Ist da grundsätzlich etwas gegen einzuwenden?
- meines Erachtens nicht. Du solltest dir halt bewusst sein, dass <script language="JavaScript1.x"> dem Browser die Entscheidung ueberlaesst, ob er sich an den Inhalt wagt, waehrend if(document.images) nur dieses Objekt abfragt, was aber nicht ausschliesst, dass der Browser JavaScript 1.1 (in diesem Fall) unvollstaendig implementiert hat und andere 1.1-Befehle nicht kennt.
gut, dann fühle ich mich bestätigt :-) Ich will JavaScript-Code (falls möglich natürlich) sowieso ausführen, deswegen wollte ich halt umformen. Zusätzlich werden so Fehlinformationen verhindert (MSIE 3.0wasauchimmer meldet 1.1, wo keines ist).
- Welche Objekte eignen sich am besten für die jeweiligen Versionen?
- Schwer zu sagen. Klassisch sind:
1.1 = if(document.images)
1.2 = if(screen)
Letzteres bringt glaube ich eine Fehlermeldung ("if (window.screen)" sollte es heißen), aber in diese Richtung liefen auch meine Vermutungen. 1.2 kann ich aber genauso mit document.layers bzw. document.all erkennen, oder? Da ich diese ohnehin abfrage, bietet sich das jedenfalls an - falls nichts anderes dagegen spricht.
- Woran zum (zensiert) erkennt man v1.3?
- Hmm, hab mich mit 1.3 noch nicht so beschaeftigt. Gibt es da ueberhaupt ein ganz neues JS-Objekt?
Keine Ahnung, ich habe nur SelfHTML danach durchsucht :-)
Mal sehen, ob ich auf den Netscape-Seiten etwas finde. Ist mein erster Versuch... aber wenn ich etwas finde, teile ich es hier mit!
Einstweilen vielen Dank für die Antwort,
Cheatah
Hi Stefan,
- Woran zum (zensiert) erkennt man v1.3?
- Hmm, hab mich mit 1.3 noch nicht so beschaeftigt. Gibt es da ueberhaupt ein ganz neues JS-Objekt?
Mal sehen, ob ich auf den Netscape-Seiten etwas finde. Ist mein erster Versuch... aber wenn ich etwas finde, teile ich es hier mit!
ich bin fündig geworden: Auf http://developer.netscape.com:80/docs/manuals/js/client/jsguide/index.htm (genauer http://developer.netscape.com:80/docs/manuals/js/client/jsguide/whatsnew.htm, ist aber die Startseite) steht, was neu in v1.3 ist. Zusammenfassung:
Keine neuen Objekte... *schnief* :-( Aber vielleicht findet ja jemand anders in den Tiefen der Developer-Seiten noch etwas, was ich übersehen habe? Ich gebe ja zu, daß ich nicht alles von oben verstanden habe... Christine, liest Du mit?
Cheatah