Я создаю javascript webapp на основе Extjs 4.2. Многие функции этой структуры работают некорректно с IE8 (и я не знаю результата с предыдущими версиями). Я ищу более чистый способ заблокировать доступ к моему веб-приложению с помощью агента пользователя, такого как IE8 или lesser, от отображения сообщения и избежать входа в webapp.
Любой тип помощи полезен
if( ! Ext.isIE6 || ! Ext.isIE7 ) {
yourapp.init();
} else {
//show the element that directs people to http://browsehappy.com/
}
Я бы не заблокировал доступ, я бы показал сообщение о том, что функции в этом приложении могут работать некорректно. Отказ в доступе плохой. Если вы хотите легко проверить 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]);
Просто используйте один из условных операторов 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.