2014-01-20 44 views
0

我创建了基于Extjs 4.2的JavaScript webapp。这个框架的很多功能在IE8下无法正常工作(而且我不知道以前版本的结果)。我正在寻找更干净的方式来阻止使用像IE8这样的用户代理访问我的网络应用,或者从显示消息的方式来阻止访问,并避免登录到Web应用。如何阻止从IE8或更低版本访问网站?

ANYTYPE的帮助是有用的

+1

使用条件语句来显示警告,告诉用户该网站将无法正常使用该浏览器,请不要完全阻止它们。 – adeneo

回答

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

可能它是最简单也是最有效的方法。 感谢您的回答。 – AfanfeFana

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

只需使用的IE's conditional statements一个你的标记内:本文所载的<!--[if lte IE 8]>块内

<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> 

任何目标的Internet Explorer的任何版本小于或等于IE8。