38 votes

jQuery / Javascript pour détecter les OS sans plugin?

Je cherche un moyen de détecter le système d'exploitation pour une page de téléchargements en utilisant jQuery ou Javascript pour recommander des fichiers spécifiques pour Mac vs Windows. J'espérais le faire sans ajouter un autre plugin à ma page.

55voto

RobB Points 5722

Essayer:

var os = navigator.platform;

Ensuite, gérez la variable os en conséquence pour votre résultat.

Vous pouvez également parcourir chaque objet de l'objet navigator pour vous familiariser avec les objets:

 <script type="text/javascript">
for(var i in navigator){
    document.write(i+"="+navigator[i]+'<br>');
}
</script>
 

Pour plus d'informations, reportez-vous à l'article suivant sur Browser Detection et sur l'utilisation de l'objet navigator .

32voto

Shawn Points 3077

Un simple JavaScript peut être tout ce dont vous avez besoin.

 var OSName="Unknown OS";
if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";
if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";
if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";

document.write('Your OS: '+OSName);
 

Comme Nick l'a suggéré, vous pouvez également utiliser navigator.platform .

14voto

Vitim.us Points 3340

Autant que je sache, le platform est la propriété la moins usurpée de l'objet navigateur. Vous pouvez l'utiliser pour obtenir des booléens.

 var isMac = navigator.platform.toUpperCase().indexOf('MAC')!==-1;
var isWindows = navigator.platform.toUpperCase().indexOf('WIN')!==-1;
var isLinux = navigator.platform.toUpperCase().indexOf('LINUX')!==-1;
 

Si vous devez différencier les Mac entre l'ancien PowerPc et le nouveau Intel.

 var isMacPpc=navigator.platform==="MacPPC";
var isMacIntel=navigator.platform==="MacIntel";
 

https://developer.mozilla.org/en/DOM/window.navigator.platform

6voto

davecoulter Points 1322

Essayer:

 alert(navigator.appVersion);
 

Cela devrait vous donner une chaîne que vous pouvez analyser pour le système d'exploitation.

5voto

gaby de wilde Points 41
<script>

osName = 'Unknown';

function nav(x, y, z) {
    z = z || y;
    if (navigator[x] && navigator[x].indexOf(y) !== -1) {
        osName = z;
    }
}

/*   navigator     value     download  */
nav( "appVersion", "X11",    "UNIX"    );
nav( "appVersion", "Mac",    "MacOS"   );
nav( "appVersion", "Linux"             );
nav( "userAgent",  "Linux"             );
nav( "platform",   "Linux"             );
nav( "appVersion", "Win",    "Windows" );
nav( "userAgent",  "Windows"           );
nav( "platform",   "Win",    "Windows" );
nav( "oscpu",      "Windows"           );

document.getElementById("download"+osName).className = "knownOS";

</script>

Assurez-vous que le bon lien de téléchargement est facile à trouver, mais sans cacher les autres OS liens. Le peuple peut encore le vouloir.

<style>

#downloadUNIX, #downloadMacOS, #downloadLinux, #downloadWindows {
    color:#6D94F2;
    line-height:35px;
    margin:24px 0 24px 0;
    padding:10px;
}
.knownOS {
    background-color:#F7ECAD !important;
    border:2px solid #E8913A;
    color:#133CC4 !important;
    font-weight:bold;
}

</style>

Et le code html

<ul>
    <li><a id="downloadUNIX"    href="unix Link Here"   >Download Napster-9000 for UNIX</a></li>
    <li><a id="downloadWindows" href="windows Link Here">Download Napster-9000 for Windows</a></li>
    <li><a id="downloadMacOS"   href="mac os link here" >Download Napster-9000 for OS X</a></li>
    <li><a id="downloadLinux"   href="linux Link Here"  >Download Napster-9000 for Linux</a></li>
</ul>

Désormais, l'utilisateur peut désactiver ou bloquer le javascript s'il le veut. Les liens seront toujours là, plutôt que d'écrire les liens avec le Javascript, ce qui nécessite javascript pour fonctionner.

Voici un violon

http://jsfiddle.net/7fmJb/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X