在JavaScript中检测IE版本(v9之前)如果用户使用的是Internet Explorer在第9节之前。只是不值得我们花时间和金钱去支持IE pre-v9..所有其他非IE浏览器的用户都很好,不应该被反弹。以下是建议的代码:if(navigator.appName.indexOf("Internet Explorer")!=-1){ //yeah, he's using IE
var badBrowser=(
navigator.appVersion.indexOf("MSIE 9")==-1 && //v9 is ok
navigator.appVersion.indexOf("MSIE 1")==-1 //v10, 11, 12, etc. is fine too
);
if(badBrowser){
// navigate to error page
}}这段代码能起作用吗?为了避免一些可能会出现在我面前的评论:是的,我知道用户可以伪造他们的useragent绳子。我不担心。是的,我知道编程专家更喜欢嗅探特性支持而不是浏览器类型,但我觉得这种方法在这种情况下是没有意义的。我已经知道所有(相关的)非IE浏览器都支持我需要的特性,以及所有这些特性。pre-v9 IE浏览器不会这样做,在整个站点中逐项检查功能将是一种浪费。是的,我知道有人试图访问这个网站IE v1(或>=20)不会将‘badBrowser’设置为true,警告页面也不会正确显示。我们愿意冒这个险。是的,我知道微软有“条件注释”,可以用于精确的浏览器版本检测。的时候,ie不再支持有条件的注释。IE 10使这种方法毫无用处。还有其他明显的问题要注意吗?
3 回答
狐的传说
TA贡献1804条经验 获得超3个赞
function isIE () { var myNav = navigator.userAgent.toLowerCase(); return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;}
if (isIE () == 8) { // IE8 code} else { // Other versions IE or not IE}
if (isIE () && isIE () < 9) { // is IE version less than 9} else { // is IE 9 and later or not IE}
if (isIE()) { // is IE} else { // Other browser}
添加回答
举报
0/150
提交
取消