Какой лучший способ показать сообщение только для IE 6 и IE 7?

11

Какой лучший способ показать текстовое сообщение только для IE 6 и IE 7?

Должен ли я добавить HTML-тег на мои веб-страницы и обычно скрыть его с помощью CSS для всех браузеров, кроме вышеупомянутых?

И когда я использую IE6 IE7, я должен скрыть сайт с помощью css и показывать только этот HTML-тег?

благодаря

aneuryzm
источник
Ваша цель не пускать пользователей IE6 & 7 на ваш сайт?
Джон Конде
@ Джон Конде, да
aneuryzm
Найдите вирус IE 6 & 7 и разместите его на своей странице. Если они заражаются, у них есть IE, вирус заражает браузер и показывает текстовое сообщение каждый раз, когда они загружают ваш сайт ... Шучу! ;)
Итай

Ответы:

0

Сложно ограничить доступ к веб-сайту через браузер, потому что нет 100% надежного способа сделать это.

Ваша первая проблема - подмена пользовательского агента. Браузеры могут идентифицировать себя с любым пользовательским агентом, который они хотят. Кажется , что у браузеров с расширениями есть такой, который делает это тривиальным. Если кто-то с IE6 или IE7 изменил свой пользовательский агент на IE8 или Firefox, он попадет на сайт.

Вы можете использовать JavaScript, чтобы решить эту проблему, используя функцию обнаружения . В основном вы используете JavaScript для простого теста: вы проверяете, существует ли часть функциональности, которой нет в IE6 или IE7. Если это не так, вы знаете, что это они. Проблема в том, что если они отключают JavaScript, они легко обходят это.

Многоуровневый подход заключается в том, чтобы анализировать браузер на стороне сервера с помощью их пользовательского агента, в идеале в Apache или IIS, и перенаправлять этих пользователей на страницу, сообщающую им, что вы не поддерживаете их браузер. Кстати, это более вежливо, чем просто скрывать сайт. Я бы добавил это с помощью метода обнаружения функций JavaScript. Между ними вы поймаете всех, кроме технически подкованных пользователей, и, скорее всего, они не используют IE6 или IE7 в любом случае.

Джон Конде
источник
@John Conde На самом деле мои вопросы были не о том, как определить браузер, а о том, как показать другой контент после его обнаружения
aneuryzm
1
Это так же просто, как перенаправление в зависимости от того, как вы выбираете браузер снифф. Если вы выберете Apache, перенаправьте на специальную страницу в файле .htaccess. Если вы выбираете JavaScript, используйте window.location. Просто попытка скрыть сайт с помощью CSS все еще делает все доступным для пользователя. Они просто не могут увидеть это без небольшого усилия. Этими способами вы убираете их из контента полностью.
Джон Конде
@ Джон Конде, о, да, ты прав
aneuryzm
5
Существует 100% надежный способ сделать это, особенно для браузеров IE. и это условные комментарии. Утверждение, что нет никакого пути, а затем подробное описание способов, которыми оно не будет работать с пользовательскими агентами, не является хорошим ответом на этот конкретный вопрос, поскольку это можно сделать без обнаружения пользовательского агента.
Евгений
2
Я не могу поверить, что это было выбрано как правильный ответ.
Марко Демайо
5

Условное комментирование CSS или использование обнаружения браузера JQUERY:

Ссылка на условные комментарии CSS

Ссылка на обнаружение браузера Jquery

Используя их, вы можете устанавливать стили, например скрывать элементы обычного содержимого и отображать элементы альтернативного содержимого. Или с помощью JS, чтобы изменить содержание и способ его отображения.

Если вы хотите просто удалить все для пользователей IE6 и показать им сообщение, сообщающее им об обновлении, вы можете настроить CSS, чтобы скрыть все внутри тела, и выдать предупреждение при загрузке с обнаружением jquery. Это сурово, но должно работать большую часть времени, пока они не пытаются скрыться или обойти это. В этом случае они, вероятно, не те люди, на которых вы ориентируетесь.

XOPJ
источник
+1 условные комментарии будут работать лучше всего в большинстве случаев, поскольку их понимают только браузеры IE.
Евгений
1
Использование обнаружения в браузере jQuery для отображения сообщения в IE 6/7 похоже на попытку войти в ваш дом через окно, а не через дверь.
Марко Демайо
Марко этот комментарий блестящий! К сожалению, у нас есть такой выбор в нашем наборе инструментов, но я всегда буду представлять его как залезание в окно в моем доме. Любить это!
XOPJ
4

Добавьте этот тип условного комментария HTML на свою страницу HTML source

<!--[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]-->

Все вышеперечисленное будет пропущено, как обычный HTML-комментарий ВСЕМИ браузерами, кроме IE, который будет анализировать их и вести себя соответственно.

Марко Демайо
источник
0

Итак, что является причиной, по которой вы хотите «спрятать сайт» от ie6 / 7? если бы это были сообщения, специфичные для пользовательского агента, я бы проголосовал за условные комментарии.

folktrash
источник
0

будет ли причина, по которой вы будете показывать другой контент, причина, по которой вы используете HTML5, который несовместим с IE7 и ниже?

Майкл Г.П. Мориарти
источник