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 autocomplete internet explorer's autocomplete
Jun 30 Javascript
javascript 常用关键字列表集合
Dec 04 Javascript
遍历jquery对象的代码分享
Nov 02 Javascript
模拟一个类似百度google的模糊搜索下拉列表
Apr 15 Javascript
Jquery实现的角色左右选择特效
May 21 Javascript
JS中改变this指向的方法(call和apply、bind)
Mar 26 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
Aug 03 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
Nov 24 Javascript
vue实现条件判断动态绑定样式的方法
Sep 29 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
Aug 02 Javascript
Vue移动端实现图片上传及超过1M压缩上传
Dec 23 Javascript
详解react组件通讯方式(多种)
May 06 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 多线程上下文中安全写文件实现代码
2009/12/28 PHP
优化php效率,提高php性能的一些方法
2011/03/24 PHP
基于PHP CURL获取邮箱地址的详解
2013/06/03 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
node.js 一个简单的页面输出实现代码
2012/03/07 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
2015/04/29 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
微信小程序表单验证错误提示效果
2017/05/19 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
JavaScript指定断点操作实例教程
2018/09/18 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
如何安装并使用conda指令管理python环境
2019/07/10 Python
Python3.7 pyodbc完美配置访问access数据库
2019/10/03 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
解释一下Windows的消息机制
2014/01/30 面试题
行政助理的职责
2013/11/14 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
银行求职信
2014/05/31 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
如何书写授权委托书?
2019/06/25 职场文书