JavaScript 判断浏览器是否是IE


Posted in Javascript onFebruary 19, 2021

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

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

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

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

  • document.all
  • window.ActiveXObject
  • 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

JavaScript 判断浏览器是否是IE

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);
}

以上就是JavaScript 判断浏览器是否是IE的详细内容,更多关于JavaScript 判断浏览器的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
javascript实现跳转菜单的具体方法
Jul 05 Javascript
jquery索引在使用中的一些困惑
Oct 24 Javascript
JS获取农历日期具体实例
Nov 14 Javascript
JS获取文本框,下拉框,单选框的值的简单实例
Feb 26 Javascript
javascript解析json数据的3种方式
May 08 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
Mar 25 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
Jun 08 Javascript
页面内容排序插件jSort使用方法
Oct 10 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
May 24 Javascript
基于vue cli重构多页面脚手架过程详解
Jan 23 Javascript
详解ES6 CLASS在微信小程序中的应用实例
Apr 24 Javascript
vue实现从外部修改组件内部的变量的值
Jul 30 Javascript
原生JavaScript实现进度条
Feb 19 #Javascript
原生JavaScript实现换肤
Feb 19 #Javascript
基于vue的video播放器的实现示例
Feb 19 #Vue.js
JavaScript Dom实现轮播图原理和实例
Feb 19 #Javascript
JavaScript使用setTimeout实现倒计时效果
Feb 19 #Javascript
react项目从新建到部署的实现示例
Feb 19 #Javascript
原生JavaScript实现幻灯片效果
Feb 19 #Javascript
You might like
PHP的cURL库简介及使用示例
2015/02/06 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
js活用事件触发对象动作
2008/08/10 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
2013/03/05 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
基于vue实现分页效果
2017/11/06 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
原生JS实现音乐播放器
2021/01/26 Javascript
python装饰器初探(推荐)
2016/07/21 Python
python 定时修改数据库的示例代码
2018/04/08 Python
Python 数值区间处理_对interval 库的快速入门详解
2018/11/16 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
python sitk.show()与imageJ结合使用常见的问题
2020/04/20 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
2020/08/11 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
新浪网技术部笔试题
2016/08/26 面试题
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
护士自荐信
2013/10/25 职场文书
小学生保护环境倡议书
2014/05/15 职场文书
开工典礼策划方案
2014/05/23 职场文书
年度考核个人总结
2015/03/06 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书
Java spring定时任务详解
2021/10/05 Java/Android
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis