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 相关文章推荐
ie与ff下的event事件使用介绍
Nov 25 Javascript
js+css3制作时钟特效
Oct 16 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
Feb 09 Javascript
JS中SetTimeout和SetInterval使用初探
Mar 23 Javascript
常见的浏览器Hack技巧整理
Jun 29 Javascript
vue实现留言板todolist功能
Aug 16 Javascript
vue按需加载组件webpack require.ensure的方法
Dec 13 Javascript
vue二级路由设置方法
Feb 09 Javascript
vue内置指令详解
Apr 03 Javascript
JavaScript变速动画函数封装添加任意多个属性
Apr 03 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
Aug 08 Javascript
原生JS实现拖拽效果
Dec 04 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的5个入手程序
2006/11/23 PHP
PHP之APC缓存详细介绍 apc模块安装
2014/01/13 PHP
PHP+jQuery 注册模块开发详解
2014/10/14 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
JavaScript代码复用模式实例分析
2012/12/02 Javascript
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
纯js分页代码(简洁实用)
2013/11/05 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
微信小程序 开发MAP(地图)实例详解
2017/06/27 Javascript
详解webpack 多页面/入口支持&amp;公共组件单独打包
2017/06/29 Javascript
Vue2几种常见开局方式详解
2017/09/09 Javascript
vue文件树组件使用详解
2018/03/29 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
Python线程的两种编程方式
2015/04/14 Python
Python中的匿名函数使用简介
2015/04/27 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
荷兰最大的多品牌男装连锁店:Adam Brandstore
2019/12/31 全球购物
客服部工作职责范本
2014/02/14 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
教师个人发展总结
2015/02/11 职场文书
贷款收入证明格式
2015/06/24 职场文书
财务人员廉洁自律心得体会
2016/01/13 职场文书
简历中的自我评价应该这样写!
2019/07/12 职场文书
SQL实现LeetCode(177.第N高薪水)
2021/08/04 MySQL
Go语言基础map用法及示例详解
2021/11/17 Golang
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python