为了账号安全,请及时绑定邮箱和手机立即绑定

在JavaScript中检测IE版本(v9之前)

在JavaScript中检测IE版本(v9之前)

幕布斯6054654 2019-06-28 15:47:36
在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个赞

返回IE版本或如果不返回IE返回false

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}


查看完整回答
反对 回复 2019-06-28
  • 3 回答
  • 0 关注
  • 417 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信