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 相关文章推荐
自动检查并替换文本框内的字符
Jun 30 Javascript
JS Array对象入门分析
Oct 30 Javascript
基于Jquery的温度计动画效果
Jun 18 Javascript
js/jQuery简单实现选项卡功能
Jan 02 Javascript
java必学必会之static关键字
Dec 03 Javascript
如何编写一个完整的Angular4 FormText 组件
Nov 18 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
Dec 29 Javascript
vue将时间戳转换成自定义时间格式的方法
Mar 02 Javascript
bootstrap与pagehelper实现分页效果
Dec 29 Javascript
解决layui使用layui-icon出现默认图标的问题
Sep 11 Javascript
Vue是怎么渲染template内的标签内容的
Jun 05 Javascript
javascript实现打砖块小游戏(附完整源码)
Sep 18 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中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
php笔记之:php函数range() round()和list()的使用说明
2013/04/26 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
2014/12/26 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
xml和web特殊字符
2009/04/28 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
基于js中的原型、继承的一些想法
2016/08/10 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
JS写滑稽笑脸运动效果
2020/05/28 Javascript
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
利用python画一颗心的方法示例
2017/01/31 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
python实现多进程通信实例分析
2019/09/01 Python
python os.listdir()乱码解决方案
2021/01/31 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
html5清空画布方法(三种)
2017/10/16 HTML / CSS
渗透攻击的测试步骤
2014/06/07 面试题
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
应用心理学个人的求职信
2013/12/08 职场文书
大学自我鉴定
2013/12/20 职场文书
《雾凇》教学反思
2014/02/17 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
确保工程质量承诺书
2015/04/29 职场文书
2019个人半年工作总结
2019/06/21 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL
雄兵连:第三季先行图公开,天使恶魔联合,银河之力的新力量
2021/06/11 国漫