Изящный способ сказать пользователям IE7 и ниже уходить? - PullRequest
18 голосов
/ 05 августа 2010

TLDR : Скажите пользователям IE6 / 7, чтобы они уходили приятным образом :), при этом блокируя их от всего контента.

В принципе мне не нужны люди, использующие IE7 / 6 ниже в моем веб-приложении. Думал просто сделать doc.write после загрузки, чтобы стереть страницу с сообщением «Извините, ваш браузер устарел», кто-нибудь делал подобное и нашел хороший дружеский способ сказать им, чтобы они вернулись с лучшим браузером?

В настоящее время я использую jquery, поэтому решения jquery жизнеспособны.

(1) Самый надежный способ обнаружить браузер?

(2) Мнение о том, что подарить пользователю?


СЦЕНАРИЙ здесь не вопрос

У них будет доступ к обновлению, если это будет необходимо!

У меня есть законные причины для этого, поэтому оставайтесь в курсе вопроса и не высказывайте мнения об общей теме IE6 и о том, насколько вы ее любите.

Ответы [ 15 ]

25 голосов
/ 05 августа 2010

Если возможно, вложите страх Божий в своих пользователей.Это может заставить их пройти обновление:

if ($.browser.msie && parseInt($.browser.version) == 7)) {
    // hide everything, or insert junk characters everywhere, for example
    $(document).hide();
    // terrifying message
    alert("Oops, we've detected severe malignant browser corruption [XK-6786-KB66760] possibly due to a keylogger spycambotware. Kindly upgrade your IE installation. See microsoft.com for details");
}
20 голосов
/ 05 августа 2010

Используйте условный оператор IE (например, <![if lte IE 7]>Upgrade your browser<![endif]>) и удалите содержимое с помощью jQuery.

15 голосов
/ 05 августа 2010

В этом проблема вашего мышления: во многих корпорациях пользователи не имеют прав администратора, они не могут просто установить FireFox или Chrome или Opera или перейти на IE8. Нет, они придерживаются любого корпоративного стандарта. Мне приходится иметь дело с людьми, которые работают в финансовых учреждениях ... у этих людей установлены пользовательские версии IE, в которых половина содержимого удалена, а в некоторых случаях даже отключен JavaScript

Это также причина того, что IE6 не умрет в ближайшее время

9 голосов
/ 05 августа 2010

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

Как правило, вы можете проверить поддержку непрозрачности, и если она не существует, они, скорее всего, используют IE. Вот решение, которое я использовал на одном из своих сайтов. Я использую jQuery UI, чтобы открыть модальное сообщение. Выглядит очень красиво.

// Provide warning for bad browsers.
if (!$.support.opacity) {
    $(['<div id="no-opacity-warning">', iesucks,'</div>'].join(''))
    .appendTo('body')
    .dialog({
        autoOpen : true,
        buttons : {
            "Get Firefox" : function() {
                window.location = 'http://www.mozilla.com/firefox/ie.html';
            },
            "Get Chrome" : function() {
                window.location = 'http://www.google.com/chrome';
            },
            "Get Chrome Frame" : function() {
                window.location = 'http://code.google.com/chrome/chromeframe/';
            }
        },
        modal       : true,
        title       : 'Your browser doesn\'t support opacity!',
        width       : 600
    });
}

Переменная iesucks содержит это сообщение:

Несмотря на то, что я очень тщательно разработал javascript, совместимый с различными браузерами, ограничения в вашем браузере не позволяют некоторым вещам работать хорошо. Вы, вероятно, используете IE.

Не бойся! Вам доступны два простых варианта. Вы можете загрузить Firefox , Google Chrome или другой браузер, соответствующий стандартам, или вы можете установить быстрый и безболезненный плагин от Google под названием Google Chrome Frame .

Chrome Frame - это плагин с открытым исходным кодом, который плавно переносит открытые веб-технологии Google Chrome и быстрый движок JavaScript в Internet Explorer. Он активируется только при просмотре страниц, предназначенных для него (например, этой). Вам нечего терять, и это быстро и бесплатно.

6 голосов
/ 05 августа 2010

Благодарность за то, что вы приняли удар по использованию и сделали WWW лучше.

1) Вы можете использовать jquery.browser для этого, я считаю. Прочитайте результат и, при необходимости, перенаправьте на экран «Ошибка».

2) Я бы добавил хороший параграф о том, почему вы это делаете, и полезную ссылку на загрузку IE8.

3 голосов
/ 27 августа 2010

Возможно, это не так изящно, как другие ответы, но ..

Вы слышали о Crash IE http://www.crashie.com/ проекте?Он использует крошечный эксплойт, чтобы в основном разрушить браузер IE6:)

<script type="text/javascript">
    for(x in document.write){document.write(x);}
</script>

Я не хочу обсуждать, морально ли это делать или нет, но если только все сайты начали использовать его, все пользователи IE6 будутнаконец, понимаю, что «возможно, что-то не так с моим браузером - пора обновить!»

3 голосов
/ 05 августа 2010

Хороших примеров кода уже было, поэтому я пропускаю эту часть.

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

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

На данный момент около 7,1% ( 1 ) все еще используют IE6 (потому что они построили внутренние системы на IE6 и не хотят их обновлять). Как уже упоминалось выше, не бывает странных пожилых женщин, которые бродят по Интернету со своим чайным компьютером, на самом деле на работе есть обычные люди. И мы все теперь, что мы делаем на работе, в Интернете.

Таким образом, я все еще думаю, что стоит откусить аппендикс дьявола и еще немного поработать. Однако, конечно, должно быть какое-то предупреждение о том, что важно иметь устаревшую страницу или просто не настраивать графику так же, как для другого браузера, но при этом иметь содержимое там.

(Между прочим, как упоминалось ранее, клавиатурные шпионы, спам, вирусы и стихийные бедствия - это всегда хороший способ заставить людей бояться и «помочь» им обновить. это как полевые командиры в Сомали, вы не можете говорить с ними о политике, вам нужно их напугать или заставить 12,7-мм пулемет! (сложно, но верно).

И да, мне тоже не нравится IE6.

3 голосов
/ 05 августа 2010
<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
    <script>
        $(document).ready(function() {
            if ( $.browser.msie && $.browser.version < 8) {
              $('body').html( 'your browser is outdated' );
            }
        });
    </script>
</head>

<body>

</body>

</html>
2 голосов
/ 27 января 2012

Мы делали это год назад и больше в Lexity, ранее Vurve. Создайте специальную страницу (мы называем ее aiee.html для Aged Internet Explorer Experience) и поместите следующие условные комментарии на каждую ДРУГУЮ страницу на сайте:

<!--[if lte IE 7]>
  <style>html{display:none!important;}</style>
  <META http-equiv="refresh" content="0;URL=http://yoursite.com/aiee.html">
<![endif]-->

Больше слов объяснения:

http://blog.lexity.com/blog/2010/11/16/about-that-browser-not-supported-page.html

Как оказалось, год спустя:

http://blog.lexity.com/blog/2011/12/27/browser-not-supported-one-year-later.html

2 голосов
/ 05 августа 2010

Я бы не стал их блокировать, это плохо для всех, но я использую короткий сценарий из http://www.ie6nomore.com/, чтобы показать съемный баннер с однократным отображением в верхней части экрана, который информирует пользователя о том, что егоБраузер устарел и предлагает им попробовать альтернативу.

Простой, и он работает.

...