Une condition pour la détection d'un navigateur

Eléphant du PHP | 271 Messages

06 oct. 2008, 23:20

Bonjour,
je souhaite qu'à l'ouverture d'un site, si un visiteur à une version inférieur à IE 7 qu'un popup l'invite à télécharger la mise à jour. Je pensai que cette ligne

Code : Tout sélectionner

else (navigator.appVersion=='<7')

aurait suffit mais bien sur cela ne fonctionne pas. Bref je n'arrive pas à écrire la condition.


Ci dessous mon code, si quelqu'un peut me guider. Merci d'avance.

Code : Tout sélectionner

function detect() { if (navigator.appName=='Netscape') { alert ("Utiliser le navigateur Internet Explorer pour un affichage correct. Vous pouvez le télécharger à www.microsoft.com/fr ") } else (navigator.appVersion=='<7') { alert ("Pour un affichage correcte du site, vous devez actualiser votre navigateur Internet Explorer sur le www.microsoft.com/fr ") } } //-------> </script> </HEAD> <body onload="detect() ">
Patience et obstination sont des qualités !

Eléphant du PHP | 451 Messages

07 oct. 2008, 00:14

Il suffit de faire comme ceci:

Code : Tout sélectionner

<script> var version = 0; if (navigator.appVersion.indexOf("MSIE") != -1) { temp = navigator.appVersion.split("MSIE"); version = parseFloat(temp[1]); } if(version == 7) { alert("Vous utilisez IE 7"); } else { alert("Vous utilisez un autre IE"); } </script>
Après c'est à toi de l'adapter à tes besoins.

++

Eléphant du PHP | 187 Messages

07 oct. 2008, 11:55

Salut,
a mon avis, plutot que de detecter le navigateur dans ton cas précis, tu ferais mieux de rendre ton site compatible avec mozilla firefox.
Moi qui suis sous linux j'aurais un peu de mal a installer IE :D
Netsupra

Mammouth du PHP | 2937 Messages

07 oct. 2008, 13:17

Il y a une autre méthode, si l'on cherche à cibler exclusivement IE : les commentaires conditionnels (ils existent aussi en JavaScript).

Code : Tout sélectionner

var sIE = 'Vous n\'utilisez pas IE.'; /*@cc_on @if (@_jscript_version < 5.7) sIE = 'Vous utilisez une version d\'IE strictement inférieure à la 7.'; @else sIE = 'Vous utilisez IE 7 (voire une bêta d\'IE 8, qui sait).'; @end @*/
Les navigateurs autres qu'IE considéreront les commentaires conditionnels comme de simples commentaires et récupèrent donc la première valeur indiquée pour la variable sIE. Dans le commentaire conditionnel ci-dessus, on teste la version de JScript implémentée par la version d'IE utilisée (5.7 pour IE 7, 5.6 pour IE 6, pour info) au moyen de la variable conditionnelle @_jscript_version, utilisée dans des conditions dont la syntaxe est @if, @elif, @else (@end est obligatoire pour fermer une série de conditions).

Plus de détails (en anglais) sur les commentaires conditionnels en JavaScript : Je parle de commentaires conditionnels : en fait, le terme plus usuel est compilation conditionnelle.

Eléphant du PHP | 271 Messages

07 oct. 2008, 19:04

Merci djtec de ton aide et je comprends mieux, toutefois je souhaite que lorsque IE 7 ou plus est détecté qu'aucune alerte s'affiche.
A partir de ta solution j'ai essayé plusieurs choses mais vu mon niveau en javascript !! bien sur ça ne marche pas.
En fait la traduction littérale de la condition : si vous avez un IE inférieur à la version 7 il y a alerte, sinon on affiche le site sans alerte.
je pensai que ceci aurait fonctionné : if(version < 7)

Je ne vois pas comment écrire cette condition. Encore merci de l'aide.

Code : Tout sélectionner

<SCRIPT LANGUAGE="Javascript"> var version = 0; if (navigator.appVersion.indexOf("MSIE") != -1) { temp = navigator.appVersion.split("MSIE"); version = parseFloat(temp[1]); } if(version ==7) { alert("Vous utilisez Internet Explorer version 7 ou plus."); } else { alert("Vous utilisez un navigateur Internet Explorer inférieur à la version 7. Nous vous conseillons d'actualiser votre navigateur sur le site de : www.microsoft.com/fr."); } </script>
Patience et obstination sont des qualités !

Eléphant du PHP | 451 Messages

07 oct. 2008, 20:37

Tu y étais presque en faites pour faire une comparaison c'est à l'identique de php donc il faut faire :

Code : Tout sélectionner

if(version <= 7)
Et la ça dit si le naviguateur est inférieur ou égal à 7

Après si tu veux comparer plusieurs version sert toi des elseif.

Comme ceci:

Code : Tout sélectionner

if(version >= 7) // Version supérieur ou égal à 7 { alert("Vous utilisez Internet Explorer version 7 ou plus."); } elseif(version <= 7) // Version inférieur ou égal à 7 { alert("Vous utilisez un navigateur Internet Explorer inférieur à la version 7. Nous vous conseillons d'actualiser votre navigateur sur le site de : www.microsoft.com/fr."); }
Ou comme ceci:

Code : Tout sélectionner

if(version >= 7) // Version supérieur ou égal à 7 { alert("Vous utilisez Internet Explorer version 7 ou plus."); } else // Version inférieur ou égal à 7 { alert("Vous utilisez un navigateur Internet Explorer inférieur à la version 7. Nous vous conseillons d'actualiser votre navigateur sur le site de : www.microsoft.com/fr."); }
Après c'est à toi de voir le premier script te servira si tu veux comparer d'autre version (Ex: version 6, etc...), hors que l'autre script ne comparera que si le naviguateur est supérieur ou égal ou inférieur à la version 7.

Voilà ++

Eléphant du PHP | 271 Messages

15 oct. 2008, 12:40

merci beaucoup de l'aide. J'ai pu résoudre.
Patience et obstination sont des qualités !