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之浮动窗口实现代码(两种方法)
Sep 08 Javascript
javascript检测浏览器flash版本的实现代码
Dec 06 Javascript
jQuery判断密码强度实现思路及代码
Apr 24 Javascript
js运动框架_包括图片的淡入淡出效果
May 11 Javascript
javascript页面动态显示时间变化示例代码
Dec 18 Javascript
jQuery中append()方法用法实例
Jan 08 Javascript
JavaScript开发者必备的10个Sublime Text插件
Feb 27 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
Feb 14 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
Nov 03 Javascript
Javascript实现运算符重载详解
Apr 07 Javascript
详解Vue中watch对象内属性的方法
Feb 01 Javascript
在Vuex中Mutations修改状态操作
Jul 24 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.ini 中文版
2006/10/28 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
jcarousellite.js 基于Jquery的图片无缝滚动插件
2010/12/30 Javascript
Jquery 数组操作大全个人总结
2013/11/13 Javascript
js键盘上下左右键怎么触发function(实例讲解)
2013/12/14 Javascript
javascript实现des解密加密全过程
2014/04/03 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
2014/06/19 Javascript
js获取浏览器基本信息大全
2014/11/27 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
使用jQuery加载html页面到指定的div实现方法
2016/07/13 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
Vue.js组件tab实现选项卡切换
2020/03/23 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
python操作xml文件详细介绍
2014/06/09 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
Python程序运行原理图文解析
2018/02/10 Python
django中模板的html自动转意方法
2018/05/27 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
python3 下载网络图片代码实例
2019/08/27 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
俄罗斯护发和专业化妆品购物网站:Hihair
2019/09/28 全球购物
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
经营理念标语
2014/06/21 职场文书
项目转让协议书
2014/10/27 职场文书
火烧圆明园观后感
2015/06/03 职场文书
商业计划书格式、范文
2019/03/21 职场文书
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js
一文搞懂MySQL索引页结构
2022/02/28 MySQL
js判断两个数组相等的5种方法
2022/05/06 Javascript
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python