作为一个前端,避免不了会遇见IE的坑,其他浏览器都好好的,测到IE就完蛋,各种不支持,服气了

有些属性和方法是所有版本IE都不支持,而有些则是部分支持,在项目中能够,主要分界岭为IE8,我相信目前大部分在维护和开发的项目,都是支持到IE8及已上版本即可,那么这篇文章,粗浅的总结一下,如何判断浏览器是IE及版本是8.0

首先,有些属性和方法是所有版本IE都不支持,那么只需要判断是否是IE即可

以下三种是我在项目中,用到的方法,如有新的方法,会更新,若大家有其他更好的方法,还望不吝赐教~~

  1. document.all
  2. window.ActiveXObject
  3. window.navigator.msSaveOrOpenBlob
//选一种即可
function isIE(){// 据说火狐以后会加入document.all这个方法,所以建议使用另外二种方法if (document.all) return true; if (!!window.ActiveXObject || "ActiveXObject" in window) return true; if (window.navigator && window.navigator.msSaveOrOpenBlob)  return true;
}

判断浏览器是IE8及以下版本

我在上文中也提到,大部分在维护和开发的项目,都是支持到IE8及已上版本即可

navigator.userAgent

function isIE8(){var DEFAULT_VERSION = 8.0;  var ua = navigator.userAgent.toLowerCase();  var isIE = ua.indexOf("msie")>-1;  var safariVersion;  if(isIE){  safariVersion =  ua.match(/msie ([\d.]+)/)[1];  }  if(safariVersion <= DEFAULT_VERSION ){  return true };
}

如有特殊要求,需要兼容更低版本,那么:

var isIE = !!window.ActiveXObject; var isIE6 = isIE && !window.XMLHttpRequest; var isIE8 = isIE && !!document.documentMode; var isIE7 = isIE && !isIE6 && !isIE8;

IE8及以下不支持的CSS属性

  • 阴影 box-shadow
  • 渐变 linear-gradient
  • 提示符 placeholder
  • 透明度 rgba
  • 边框 border-image
  • 圆角 border-radius
  • 旋转相关 transform

IE不支持的方法

  • 在线浏览PDF文件,因为IE并没有内置的pdf阅读器,因此只能下载查看

    • 后端返回文件流时:window.navigator.msSaveOrOpenBlob(blob);具体可以参考另两篇博文,
    • JavaScript处理后端返回PDF文件流,在线预览下载PDF文件
    • Vue.js +pdf.js 处理响应pdf文件流数据,前端转图片预览不可下载
  • 不支持<a>标签download属性,因此可以用新建iframe,并设置其src属性

if (isIE()){$("a").bind('click',function(){var elemIF = document.createElement("iframe");  elemIF.src = FilePath;elemIF.style.display = "none";  document.body.appendChild(elemIF);});
} else {$("a").attr("href",FilePath).attr("download",FileName);
}

判断浏览器是否是 IE 及 IE8 以下版本相关推荐

  1. JS如何判断浏览器类型和详细区分IE各版本浏览器

    /* * 描述:判断浏览器信息 * 编写:LittleQiang_w * 日期:2016.1.5 * 版本:V1.1 *///判断当前浏览类型 function BrowserType() { var ...

  2. 通过JS判断浏览器类型,详细区分IE各版本浏览器

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...

  3. JS判断浏览器IE6、IE7、IE8、IE9、IE10、IE11、Chrome、Firefox、Safari、Opera方法,亲测可用

    <script>function myBrowser(){var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串var isOp ...

  4. 判断浏览器版本是否ie8,ie9,ie10,ie11并提示升级

    判断是否IE浏览器极其版本主要是三种方法,第一种是通过 if IE 条件注释语句,第二种是通过 @cc_on 条件编译结合 document.documentMode 属性来判断,第三种则是简单粗暴地 ...

  5. 判断浏览器是否为ie8调样式

    判断浏览器是否为ie8调样式 代码如下: $(function(){var UA = navigator.userAgent,isIE = UA.indexOf('MSIE') > -1,v = ...

  6. 条件注释判断浏览器!--[if !IE]!--[if IE]!--[if lt IE 6]!--[if gte IE 6]

    条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]> <!- ...

  7. javascript 判断浏览器

    为什么80%的码农都做不了架构师?>>>    navigator.userAgent 通常我们可以通过navigator.userAgent只读属性来获取浏览器的一些信息,算是原生 ...

  8. 判断浏览器类型及版本

    公司前段时间做项目需要判断浏览器,因为项目进度急暂时只支持一种浏览器 使用window.navigator.userAgent属性,但是在国产浏览器上遇到了问题,下面这段代码只能判断内核,但是我想判断 ...

  9. javascript判断浏览器核心

    20 21 22 23 24 /** * 判断浏览器核心 * @return IE6.0/IE7.0/IE8.0/FireFox/Opera/other * @author ypz */ functi ...

最新文章

  1. NSIS中判断.net framework 是否安装
  2. python作业是什么意思_Python12.21-基本数据类型学习笔记和作业,python1221,及
  3. 代码演示:获取锁时被中断
  4. 【AtCoder - 2554】Choose Integers (找规律,或枚举)
  5. PHP开发中涉及到emoji表情的几种处理方法
  6. 前端(jQuery)(10)-- jQuery标签切换
  7. 修正的判定条件覆盖例题_硬核:嵌入式代码覆盖率统计方法和经验
  8. 设计一台模型计算机 实现下列指令系统,基本模型机的设计与实现1
  9. python中正则表达式_Python中正则表达式详解
  10. bzoj 3504: [Cqoi2014]危桥(最大流)
  11. Openresty 与 Tengine
  12. 抖音网页版上线:这回可以在电脑上刷抖音啦!
  13. 苹果官网首页页面设计
  14. 牛客网-调整数组顺序使奇数位于偶数前面
  15. 使用nbsp;Windowsnbsp;Serveramp;nb…
  16. xamp环境搭建Pikachu实验环境搭建
  17. 文件服务器整机克隆,云服务器镜像克隆
  18. oracle数据库导出灰色_Oracle数据库导入导出命令总结
  19. 宇视NVR录像机下载录像没有声音如何解决
  20. 没有一只蟹能活着爬出上海

热门文章

  1. 帝国cms e loop php,帝国cms灵动标签e:loop实例学习
  2. InfoGAN:Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets
  3. 【案例分享】沃尔沃FMX V4 Euro 6 燃油压力故障诊断
  4. 周志华、贾扬清入选!2022中国高被引学者榜单揭晓,计算机界214人上榜
  5. 2.Lambda表达式
  6. 因上努力,果上随缘。
  7. 详细解读Windows8.1 Update中的WIMBoot新特性
  8. 青囊如可授 从此访鸿蒙 意思,江南水寺中元夜,金粟栏边见月娥.什么意思
  9. 最全ARM体系结构知识:汇编、架构、异常级别和安全状态
  10. h3c端口聚合实现服务器增加带宽,H3C 交换机链路聚合与服务器 bond0 负载均衡设置...