JS - detekcia verzie IE

Programovacie jazyky, rady, poradňa...
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

JS - detekcia verzie IE

Príspevok od používateľa weroro »

Čaute,

Googlim, a nič poriadne na túto tému sa mi nepodarilo nájsť. Tým myslím, žiadne komplexné a jednoduché riešenie, ktoré by mi vrátilo verziu IE.
Ja som si teda napísal takúto šialenosť, ktorá riadne funguje:

Kód: Vybrať všetko

function isIE () {
  var myNav = navigator.userAgent.toLowerCase();
  return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;
}
Máte niekto niečo krajšie? Alebo vedeli by ste to zapísať krajšie?
Dík. :)
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: JS - detekcia verzie IE

Príspevok od používateľa TommyHot »

Ak pouzivas jQuery tak mozes pouzit $.browser http://api.jquery.com/jQuery.browser/

Len si to poriadne pretestuj, pretoze napriklad safari ti vrati verziu renderovacieho jadra, kdezto ostatne browsery verziu browseru atd.
awtt
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1234
Registrovaný: 01 nov 2006, 19:37
Bydlisko: San Francisco
Kontaktovať používateľa:

Re: JS - detekcia verzie IE

Príspevok od používateľa awtt »

Ono realne by ta verzia IE nemala vobec zaujimat, pretoze by si mal robit feature detection namiesto browser detection, preto uz aj $.browser uz v najnovsich jQuery nie je.
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: JS - detekcia verzie IE

Príspevok od používateľa TommyHot »

Akym toolom robis feature detection?
Everhard
Light Expert
Light Expert
Príspevky: 79
Registrovaný: 25 dec 2010, 14:41

Re: JS - detekcia verzie IE

Príspevok od používateľa Everhard »

ja som toho dost nasiel (Google: simple detect browser javascript), napr http://www.quirksmode.org/js/detect.html
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: JS - detekcia verzie IE

Príspevok od používateľa sharky-no »

awtt
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1234
Registrovaný: 01 nov 2006, 19:37
Bydlisko: San Francisco
Kontaktovať používateľa:

Re: JS - detekcia verzie IE

Príspevok od používateľa awtt »

Ja tiez odporucam jednoznacne Modernizr.
Ten ti nahadze classy do body (dobre pre css fallbacks), a taktiez vytvori Modernizr objekt kde si vies zistiti podporu skoro vsetkeho.
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: JS - detekcia verzie IE

Príspevok od používateľa TommyHot »

Nestaci jQuery.support, ci je lepsie pouzivat robustny tool?
awtt
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1234
Registrovaný: 01 nov 2006, 19:37
Bydlisko: San Francisco
Kontaktovať používateľa:

Re: JS - detekcia verzie IE

Príspevok od používateľa awtt »

Zalezi od toho co potrebujes.

Modernizr ti zisti podporu cssTranformacii, vytvorit ti browser prefix, vies zavolat cez neho mediaquery, zisti touch device a kopu inych veci..
No a je to zaroven aj polyfill.

No ale vsetko je na zvazeni lebo ked zistis ze nic z toho nepotrebujes tak potom jasne ze je lepsie ho tam nedavat :)
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: JS - detekcia verzie IE

Príspevok od používateľa weroro »

Prečo tu riešime jQuery? Načo ťahať niekoľko 100 kilový framework, kvôli tomu aby som zistil či mám IE a akú verziu?
Pýtal som sa na nejakú elegantnú techniku v JS a nie v jeho frameworku. (príde mi to rovnako nelogické ako keď niekto potrebuje efekt animovaného rolovania na kotvu v dokumente a použije jQuery a pritom je to na pár riadkov v čistom JS)
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: JS - detekcia verzie IE

Príspevok od používateľa TommyHot »

skomprimovany jQuery ma par kb a nevidim dovod preco ho nepouzivat vzdy, ked je moznost, ze tam do buducna toho js bude podstatne viac...
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: JS - detekcia verzie IE

Príspevok od používateľa weroro »

Stále nerozumiem, čo máte z toho, keď na banality používate jQuery. Nepoviem, nejaké komplikované záležitosti ako sockety a pod.
Môj názor je taký, že robiť web/aplikáciu pre niekoho (za peniaze) a použiť jQuery, je rovnaké ako si vypýtať peniaze za hotovú stiahnutú fotogalériu, kde som nenaprogramoval ani riadok. By ma zaujímalo, koľkí z tých jQuery borcov (nemyslím tým vás chalani), dokážu aspoň zamerať konkrétny element v dokumente bez JQ. Nie som jeho odporcom, ale zas nebudem pchať niekde niečo, čo tam bude zbytočné. Potom vznikajú situácie, kedy všetci používajú JQ a majú v headery 30 riakov externých JS súborov s frameworkami a zistia, že im z nejakého dôvodu nefunguje. Samozrejme, najčastejší dôvod je že si poprepisujú window.onload. :D

Osobne považujem túto tému za uzavretú. Evidentne neexistuje (nepoznáte) lepšie/jednoduchšie/kratšie riešenie v čistom JS ako zistiť verziu IE. Ďakujem však aspoň za ďalšie možné alternatívy, aj keď hnusné. :)

//autoeditácia príspevku (25 Jún 2013, 21:08)
Našiel som takúto haluz, na detekciu IE-čka. Nezistí to verziu, ale oddelí IE od ostatných.

Kód: Vybrať všetko

var isIE = /*@cc_on!@*/0; 
Vysvetlenie:

@cc_on je zapnutie podmienenej kompilácie

Vyššie napísaný kód na detekciu vidia prehliadače ako var isIE = 0; ale IE ho vidí ako var isIE = !0; z čoho je jasné, že iba v IE to vráti znegovanú hodnotu 0 (čiže 1).
0 = false;
1 = true;
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: JS - detekcia verzie IE

Príspevok od používateľa audiotrack »

to je síce pekné, ale nakoľko je to záležitosť JScriptu (dialekt ECMAScriptu ktorý používa iba IE) a microsoft modifikuje tento engine v každej verzii, tak je vysoko pravdepodobne že o pár rokov to fungovať už nebude, a tvoje aplikácie skolabujú :)
A tiež nezabúdaj na to, že ak programuješ nejaký knižnicu o ktorej sa predpokladá že sa bude používať aj v iných projektoch, bude sa zrejme minimalizovať a to ti všetky komentáre vyhodí. Takže ja sa prikláňam k starému dobrému

Kód: Vybrať všetko

var appname = window.navigator.appName
prípadne využiť modernizr alebo yepnope
Napísať odpoveď