Quelle est la meilleure façon d'afficher un message uniquement pour IE 6 et IE 7?

11

Quelle est la meilleure façon d'afficher un message texte pour IE 6 et IE 7 uniquement?

Dois-je ajouter une balise html à mes pages Web et la cacher normalement avec css pour tous les navigateurs à l'exception de ceux mentionnés ci-dessus?

Et lorsque j'utilise IE6 IE7, dois-je masquer le site Web avec css et afficher uniquement cette balise html?

Merci

anévrisme
la source
Votre objectif est-il de garder les utilisateurs IE6 et 7 hors de votre site Web?
John Conde
@John Conde yeah
aneuryzm
Trouvez un virus IE 6 & 7 et mettez-le sur votre page. S'ils sont infectés, ils ont IE, font que le virus détourne le navigateur et affiche un message texte à chaque fois qu'ils chargent votre site ... Je plaisante! ;)
Itai

Réponses:

0

Il est difficile de limiter l'accès à un site Web par navigateur, car il n'existe aucun moyen à 100% infaillible de le faire.

Votre premier problème est l'usurpation de l'agent utilisateur. Les navigateurs peuvent s'identifier avec n'importe quel agent utilisateur qu'ils souhaitent. Les navigateurs avec des extensions semblent tous en avoir un qui rend cela insignifiant. Si quelqu'un avec IE6 ou IE7 a changé son agent utilisateur pour être celui d'IE8 ou de Firefox, il accédera à un site Web.

Vous pouvez utiliser JavaScript pour résoudre ce problème en utilisant la détection des fonctionnalités . Fondamentalement, vous utilisez JavaScript pour effectuer un test simple: vous vérifiez si un élément de fonctionnalité qui n'existe pas dans IE6 ou IE7 existe. Si ce n'est pas le cas, vous savez que c'est eux. Le problème est que s'ils désactivent JavaScript, ils contournent facilement cela.

Une approche à plusieurs niveaux serait de flairer le navigateur côté serveur en utilisant leur agent utilisateur, idéalement dans Apache ou IIS, et de rediriger ces utilisateurs vers une page leur disant que vous ne supportez pas leur navigateur. BTW, c'est plus poli que de simplement cacher le site Web. J'augmenterais cela avec la méthode de détection des fonctionnalités JavaScript. Entre les deux, vous attraperez tous les utilisateurs, sauf les plus techniquement avertis et les chances sont qu'ils n'utilisent pas IE6 ou IE7 de toute façon.

John Conde
la source
@John Conde Mes questions ne portaient pas sur la façon de détecter le navigateur, mais sur la façon d'afficher un contenu différent une fois le navigateur détecté
aneuryzm
1
C'est aussi simple qu'une redirection selon la façon dont vous choisissez de flairer le navigateur. Si vous choisissez Apache, puis redirigez vers une page spéciale dans un fichier .htaccess. Si vous choisissez JavaScript, utilisez window.location. Le simple fait d'essayer de masquer le site Web avec CSS met tout à la disposition de l'utilisateur. Ils ne peuvent tout simplement pas le voir sans un petit effort. De cette façon, vous les enlevez complètement du contenu.
John Conde
@John Conde oh ouais, vous avez raison
aneuryzm
5
il existe un moyen 100% infaillible de le faire, en particulier pour les navigateurs IE. et ce sont des commentaires conditionnels. dire qu'il n'y a aucun moyen, puis élaborer sur les façons dont il ne fonctionnera pas avec les agents utilisateurs n'est pas une bonne réponse à cette question particulière, car cela peut être fait sans détection d'agent utilisateur.
Evgeny
2
Je ne peux pas croire que cela a été choisi comme la bonne réponse.
Marco Demaio
5

Commenter CSS conditionnel ou utiliser la détection du navigateur JQUERY:

Lien vers les commentaires conditionnels CSS

Lien vers la détection du navigateur Jquery

En les utilisant, vous pouvez définir des styles comme masquer les divs du contenu normal et afficher les divs du contenu alternatif. Ou nous JS pour modifier le contenu et la façon dont il est affiché.

Si vous cherchez à supprimer tout pour les utilisateurs d'IE6 et à leur montrer un message leur disant de mettre à jour, vous pouvez définir le CSS pour masquer tout à l'intérieur du corps et lancer une alerte de surcharge avec la détection jquery. C'est dur, mais devrait fonctionner la majorité du temps tant qu'ils n'essaient pas d'être sournois ou de contourner cela. Dans ce cas, ce ne sont probablement pas les personnes que vous visez.

XOPJ
la source
+1, les commentaires conditionnels fonctionneront mieux dans la plupart des cas, car seuls les navigateurs IE les "comprennent".
Evgeny
1
Utiliser la détection du navigateur jQuery pour afficher un message sur IE 6/7, c'est comme tenter d'entrer dans votre maison par la fenêtre au lieu d'utiliser la porte.
Marco Demaio
Marco ce commentaire est génial! Malheureusement, c'est un choix que nous avons dans notre boîte à outils, mais je vais toujours l'imaginer comme grimper dans une fenêtre de ma maison maintenant. Aimer!
XOPJ
4

Ajoutez ce type de commentaire conditionnel HTML dans votre page source HTML

<!--[if IE 6]>
<h1>Hello, u r using IE6, your message here</h1>
<![endif]-->

<!--[if IE 7]>
<h1>Hello, u r using IE7, your message here</h1>
<![endif]-->

<!--[if lt IE 8]>
<h1>Hello you are using a version of IE less than IE8, your message here</h1>
<![endif]-->

Tout ce qui précède sera ignoré comme un commentaire HTML normal par TOUS les navigateurs, sauf IE, qui les analysera et les corrigera en conséquence.

Marco Demaio
la source
0

Alors - quelle est la raison de vouloir "cacher le site web" de ie6 / 7? s'il s'agit d'une messagerie spécifique à l'agent utilisateur, je voterais pour des commentaires conditionnels.

folktrash
la source
0

la raison pour laquelle vous afficheriez un contenu différent est-elle la raison pour laquelle vous utilisez HTML5, qui n'est pas compatible avec IE7 et ci-dessous?

Michael GP Moriarty
la source