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 19 Javascript
转换字符串为json对象的方法详解
Nov 29 Javascript
IE浏览器下PNG相关功能
Jul 05 Javascript
基于jquery animate操作css样式属性小结
Nov 27 Javascript
AngularJS 依赖注入详解及示例代码
Aug 17 Javascript
form+iframe解决跨域上传文件的方法
Nov 18 Javascript
详解微信小程序 页面跳转 传递参数
Dec 08 Javascript
Vuex利用state保存新闻数据实例
Jun 28 Javascript
使用puppeteer破解极验的滑动验证码
Feb 24 Javascript
微信小程序实现张图片合成为一张并下载
Jul 16 Javascript
webpack打包优化的几个方法总结
Feb 10 Javascript
微信小程序抽奖组件的使用步骤
Jan 11 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中apc缓存使用示例
2013/12/25 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
jQuery 扩展对input的一些操作方法
2009/10/30 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
js中arguments,caller,callee,apply的用法小结
2014/01/28 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
JavaScript数组和循环详解
2015/04/27 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
vue.js中created方法作用
2018/03/30 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
Python 元类使用说明
2009/12/18 Python
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
如何在python中使用selenium的示例
2017/12/26 Python
pycham查看程序执行的时间方法
2018/11/29 Python
使用Python实现企业微信的自动打卡功能
2019/04/30 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
详解CSS3弹性伸缩盒
2020/09/21 HTML / CSS
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
工伤事故赔偿协议书范文
2014/09/24 职场文书
承诺保证书格式
2015/02/28 职场文书
大学入学感言
2015/08/01 职场文书
事业单位工作人员岗前培训心得体会
2016/01/08 职场文书
56句经典英文座右铭
2019/08/09 职场文书
JavaScript中isPrototypeOf函数
2021/11/07 Javascript
分享提高 Python 代码的可读性的技巧
2022/03/03 Python