2012-01-08 14 views
6

Son birkaç aydır şirketim için bir kullanıcı yazımı yazdım ve kurulum talimatları ile ana siteyi tasarladım (çalışanlarımız tüm dünyaya dayanıyor) ve çok azı, kullanıcı metinlerini duydu, sadece onları kullanmasına izin vermedi, bu yüzden bu ön kısım, senaryoyu desteklerken harcadığım zamanı kısaltmak anlamına geliyordu).jQuery - işletim sistemi ve işletim sistemi sürümünün algılanması

Yapmak istediğim, yükleme sayfasında, hangi tarayıcı ve OS/OS sürümünün kullandığını saptamaktır, böylece ilgili yönergeleri diğerlerinden biraz daha koyu olarak vurgulayabilir veya yalnızca ilgisiz bölümleri görüntülemez .

Örneğin IE6 için, kullanıcı adlarını yüklemek için Trixie (inanıyorum) kullanmanız gerekir ve bu yalnızca Win XP'de desteklenir. IE7, Win XP'de desteklenir, IE8, Win XP'de desteklenir & Win 7 ve IE9, yalnızca Win 7'de desteklenir. IE7 için, 8 & 9 IEPro'yu kullanmanızı tavsiye ediyorum. Trixie & IEPro arasındaki fark, Trixie'nin C:/Program Files/bhelpuri içine kaydedilmesi gereken .user.js dosya uzantısı gerektirmesidir. Öte yandan, IEPro, uzantının .ieuser olmasını ve farklı bir konuma kaydedilmesini gerektirir. Özellikle IE için, sürümü doğru bir versiyona götürmek için sürümü tespit etmek ve sadece doğru linki (ya da geçerli tarayıcıları için hangi eklentiyi kullanması gerektiğine bağlı olarak .user.js veya .ieuser) görüntülemek istiyorum. Bu OS/OS sürümü için doğru kaydetme yolu ile bu tarayıcı için dosyanın. Bu şimdiye kadar bir anlam ifade ediyor mu?

Temelde sorum şu ki, işletim sistemi sürümünü algılamanın bir yolu bilen var mı? Şu anda http://www.stoimen.com/blog/2009/07/04/jquery-os-detection/ kullanıyorum ama bu işletim sistemi sürümü, sadece işletim sistemi vermez. Navigator nesnesinde saklanan tüm değişkenler arasında başarı sağlamadan döngü yapmayı denedim. Herhangi bir yardım büyük takdir edilecektir.

Düzenleme: Nates yanıtına teşekkürler, tam kodu http://jsfiddle.net/Mu8r5/1/ numaralı telefona koydum. Umarım bu gelecekte birisine yardım eder.

cevap

22

En iyi bahsiniz, navigator.userAgent özelliğini kullanmaktır. Windows sürüm numarasını verecektir. İşte

OSVERSIONINFO

bazı örnek algılama kodu: Burada OS, Windows sürüm numarası haritası nasıl bir tablo görebilirsiniz işaretçileri için

var os = (function() { 
    var ua = navigator.userAgent.toLowerCase(); 
    return { 
     isWin2K: /windows nt 5.0/.test(ua), 
     isXP: /windows nt 5.1/.test(ua), 
     isVista: /windows nt 6.0/.test(ua), 
     isWin7: /windows nt 6.1/.test(ua), 
     isWin8: /windows nt 6.2/.test(ua), 
     isWin81: /windows nt 6.3/.test(ua) 
    }; 
}()); 

if(os.isWin7) { 
    ... 
} 

http://jsfiddle.net/45jEc/

+0

Snippet için teşekkürler - bu harika bir başlangıç ​​noktası gibi görünüyor! Son halini aldığımda daha sonra sorularıma jsfiddle göndereceğim. – ClarkeyBoy

1

Yığın Taşması sorusu Detect exact OS version from browser, işletim sistemi sürümünün, JavaScript'ten erişilebilen aynı bilgileri içerdiğini düşündüğüm Kullanıcı Aracısı üstbilgisinden almasıyla ilgili bazı ilginç ayrıntılara gider.

5

O büyük javascript kütüphanesi kullanabilirsiniz: http://www.visitorjs.com/details açık kaynaklı geçenlerde

Düzenleme geçerli: Aslında, şimdi http://github.com/codejoust/session.js ve bildiğim için session.js yeniden adlandırılır, yani alabilirsiniz en iyisidir.

+1

teşekkürler ben Kendi kodumu yazmayı tercih ettiğim için Nates cevabı ile gideceğimi düşün (1 - Ben tam olarak ne yaptığını biliyorum ve 2 - Daha fazla öğreniyorum). Ayrıca bu koda bir göz attım ve çifte kontrol ettim, ancak OS sürümü, sadece işletim sistemi kadar ileri gitmiyor. Yine de teşekkürler. – ClarkeyBoy

+0

Windows için iyi bir şey yok 8.1 yani 11 O/S 0/N gibi geri geliyor – Rippo