如何阻止从IE8或更低版本访问网站?

时间:2014-01-20 11:26:35

标签: javascript html internet-explorer user-agent extjs4.2

我创建了一个基于Extjs 4.2的javascript webapp。这个框架的很多功能与IE8无法正常工作(我不知道以前版本的结果)。我正在搜索更干净的方式来阻止我使用IE8等用户代理访问我的网络应用程序,或者更少显示消息并避免登录到webapp。

任何类型的帮助都很有用

3 个答案:

答案 0 :(得分:1)

我不会阻止访问,我会显示一条消息,指出此应用程序中的功能可能无法正常运行。拒绝访问是不好的。如果你想轻松IE8检测结帐ConditionizrIE8 detect(我创建它):

/*!
 * 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
});

另外,您可以加载polyfills /其他资产。也许您可以为非IE8加载Ext.js,以便应用程序不会中断,它只是不提供服务。

使用Conditionizr,您也可以使用!忽略浏览器:

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

答案 1 :(得分:1)

if( ! Ext.isIE6 || ! Ext.isIE7 ) {
    yourapp.init();
} else {
    //show the element that directs people to http://browsehappy.com/
}

答案 2 :(得分:0)

只需在标记中使用IE's conditional statements之一:

<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]>块中包含的任何内容都会针对小于或等于IE8的任何版本的Internet Explorer。