ugrás a tartalomhoz

JavaScript verzió lekérése

Kenguru · 2005. Ápr. 12. (K), 18.37
Egyszerű kérdésem lenne:
Hogyan tudom lekérdezni a rendelkezésre álló javascrit verziót?
1.0 - 1.1 -1.2 ....
 
1

Egynek jó

Török Gábor · 2005. Ápr. 12. (K), 21.37

<script language="javascript">
var version = 1;
</script>
<script language="javascript1.1">
var version = 1.1;
</script>
<script language="javascript1.2">
var version = 1.2;
</script>
--
slink
2

Nem lehet lekérdezni a JavaScript verziót...

Granc Róbert · 2005. Ápr. 12. (K), 23.30
Próbáltam utánanézni, és az eredmény az, hogy nem tudod lekérdezni a JS verziót.

A quirksmode.org JS leírásában így írnak erről:
JavaScript versions - No

When devising JavaScript, Netscape was fully aware that future browsers would support more objects than old ones, and that web developers should be able to distinguish between old and new browsers.

The original plan was that they would check the JavaScript version number. Such-and-such object was only to be supported by JavaScript 1.something. Use the JavaScript version number in your <script> tag and browser that don’t support the object won’t execute the script.

However, when Microsoft entered the market, this idea went to shambles. Although early Netscape 4 and Explorer 4 versions both supported JavaScript 1.2, not even the most powerful fantasy can imagine them supporting the same JavaScript 1.2 . With this the version numbers became obsolete and irrelevant to object detection.

So don’t use JavaScript version numbers. They’re useless.


Magyarul összefoglalva:
Amikor megalkották a JavaScriptet, a Netscape fejlesztői számítottak arra, hogy a későbbi böngészők több objektumot támogatnak majd mint a régebbiek, és ellenőrizhetővé kellene tenni a JavaScript verziószámot.
Ám ekkor lépett be a piacra a Microsoft, és míg mind a Netscape 4, mind az IE 4 a JavaScript 1.2-es változatát támogatta, "természetesen" nem ugyanúgy tették azt. Így aztán a JS verziószáma lényegtelenné is vált.


A valódi megoldás az objektumok detektálása:
...we simply look if the browser supports the object (method, array or property) we want to use...

...If you always use object detection, your scripts will never generate any error messages, although they might not work in certain browsers.


Azaz,
...egyszerűen ellenőrizzük, hogy a böngésző támogatja-e az objektumot (metódust, tömböt vagy tulajdonságot), amit használni szeretnénk.
...Az objektum-detektálás állandó használatával a szkriptünk soha nem fog hibaüzenetet generálni, annak ellenére hogy egyes böngészőkben esetleg nem fog működni.


A Mozilla.org leírása webfejlesztőknek slink fenti megoldásához hasonlóan egy elég kőbaltás módszert használ: lekérdezi a böngésző típusát, majd ebből megmondja hogy az adott böngésző a JS melyik változatát támogatja... :D
    var is_js;
    if (is_nav2 || is_ie3) is_js = 1.0;
    else if (is_nav3) is_js = 1.1;
    else if (is_opera5up) is_js = 1.3;
    else if (is_opera) is_js = 1.1;
    else if ((is_nav4 && (is_minor <= 4.05)) || is_ie4) is_js = 1.2;
    else if ((is_nav4 && (is_minor > 4.05)) || is_ie5) is_js = 1.3;
    else if (is_hotjava3up) is_js = 1.4;
    else if (is_nav6 || is_gecko) is_js = 1.5;
/Robi
3

Sejtettem...

Kenguru · 2005. Ápr. 13. (Sze), 15.38
Az első módszert ismerem én is. Egy statisztikai gyűjtéshez szeretnék valami rövidebb, egyszerübb megoldást.
Sejtettem, hogy ez van...

A böngészős módszerre is gondoltam, de nem tartom tökéletes megoldásnak.

Amin gondolkodom azaz, hogy a különböző verziók + dolgait használom és ha nem megy attól kisebb verziónak felel meg a JS.

Kösszönöm a segítséget.