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 相关文章推荐
jQuery实现点击标题输入详细信息
Apr 16 Javascript
利用javascript判断文件是否存在
Dec 31 Javascript
JavaScript核心语法总结(推荐)
Jun 02 Javascript
js中window.open的参数及注意注意事项
Jul 06 Javascript
jQuery grep()方法详解及实例代码
Oct 30 Javascript
简单理解js的prototype属性及使用
Dec 07 Javascript
BootStrap Fileinput的使用教程
Dec 30 Javascript
原生js实现秒表计时器功能
Feb 16 Javascript
微信小程序实现时间预约功能
Nov 27 Javascript
JS数组方法shift()、unshift()用法实例分析
Jan 18 Javascript
JS定时器如何实现提交成功提示功能
Jun 12 Javascript
VUE使用draggable实现组件拖拽
Apr 06 Vue.js
原生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
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
JavaScript的目的分析
2007/01/05 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
JS实现的汉字与Unicode码相互转化功能分析
2018/05/25 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
js在HTML的三种引用方式详解
2020/08/29 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
Python使用百度API上传文件到百度网盘代码分享
2014/11/08 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
python字典排序的方法
2019/10/12 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
德国电子商城:ComputerUniverse
2017/04/21 全球购物
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
女大学生个人求职信
2013/12/09 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
2015年爱牙日活动总结
2015/03/23 职场文书
MySQL表类型 存储引擎 的选择
2021/11/11 MySQL