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一个无懈可击的实例化XMLHttpRequest的方法
Oct 13 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
Oct 13 Javascript
设置checkbox为只读(readOnly)的两种方式
Oct 11 Javascript
js数组循环遍历数组内所有元素的方法
Jan 18 Javascript
JavaScript使用Replace进行字符串替换的方法
Apr 14 Javascript
详解JavaScript中Hash Map映射结构的实现
May 21 Javascript
如何解决hover在ie6中的兼容性问题
Dec 15 Javascript
angular 用Observable实现异步调用的方法
Dec 27 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
Sep 26 Javascript
vue之a-table中实现清空选中的数据
Nov 07 Javascript
NestJs使用Mongoose对MongoDB操作的方法
Feb 22 Javascript
浅谈JS的二进制家族
May 09 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加MYSQL服务器
2006/10/09 PHP
打造超酷的PHP数据饼图效果实现代码
2011/11/23 PHP
Window下PHP三种运行方式图文详解
2013/06/11 PHP
php+ajax实现文章自动保存的方法
2014/12/30 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
2017/10/11 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
2015/09/16 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
JS原型、原型链深入理解
2016/02/27 Javascript
浅谈Sublime Text 3运行JavaScript控制台
2016/06/06 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
angular中ui calendar的一些使用心得(推荐)
2017/11/03 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
python flask中动态URL规则详解
2019/11/22 Python
PyTorch中permute的用法详解
2019/12/30 Python
快速查找Python安装路径方法
2020/02/06 Python
python录音并调用百度语音识别接口的示例
2020/12/01 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
Shopee菲律宾:在线购买和出售
2019/11/25 全球购物
教师自荐信范文
2013/12/09 职场文书
公司年会搞笑主持词
2014/03/24 职场文书
采购意向书范本
2014/03/31 职场文书
安全教育月活动总结
2014/05/05 职场文书
市场部岗位职责范本
2015/04/15 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
linux下安装redis图文详细步骤
2021/12/04 Redis