Как заблокировать доступ к сайту из IE8 или менее?

0

Я создаю javascript webapp на основе Extjs 4.2. Многие функции этой структуры работают некорректно с IE8 (и я не знаю результата с предыдущими версиями). Я ищу более чистый способ заблокировать доступ к моему веб-приложению с помощью агента пользователя, такого как IE8 или lesser, от отображения сообщения и избежать входа в webapp.

Любой тип помощи полезен

  • 1
    Используйте условные операторы для отображения предупреждения о том, что сайт не будет корректно работать с этим браузером, не блокируйте их полностью.
Теги:
internet-explorer
extjs4.2
user-agent

3 ответа

1
Лучший ответ
if( ! Ext.isIE6 || ! Ext.isIE7 ) {
    yourapp.init();
} else {
    //show the element that directs people to http://browsehappy.com/
}
  • 0
    Вероятно, это самый простой и эффективный способ сделать это. Спасибо за ответ.
1

Я бы не заблокировал доступ, я бы показал сообщение о том, что функции в этом приложении могут работать некорректно. Отказ в доступе плохой. Если вы хотите легко проверить IE8 Checkout Conditionizr и IE8 обнаружить (я его создал):

/*!
 * IE8
 * @cc_on Conditional Compilation to test the
 * JavaScript versions
 */
conditionizr.add('ie8', [], function () {
  var version = false;
  /*@cc_on if (@_jscript_version > 5.7 && !/^(9|10)/.test(@_jscript_version))
  version = true @*/
  return version;
});

Это дает вам:

if (conditionizr.ie8) {
  // stuff for ie8
}

conditionizr.on('ie8', function () {
  // callbacks
});

Кроме того, вы можете загружать полисы/другие активы. Возможно, вы можете загрузить Ext.js для не-IE8, чтобы приложение не прерывалось, вместо этого оно не служит.

С Conditionizr вы также можете игнорировать браузеры ! :

conditionizr.on('!ie8'[, callback]);
0

Просто используйте один из условных операторов IE в своей разметке:

<html>
    ...
    <body>
        <!--[if lte IE 8]>
            <p>Notice: As you are using an old browser some features of this
               web app may not work for you. Please update.</p>
        <![endif]-->
        ...
    </body>
</html>

Все, что содержится в блоке <!--[if lte IE 8]> предназначено для любой версии Internet Explorer, меньшей или равной IE8.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню