如何用JS判断浏览器类型是不是IE或火狐浏览器
说到判断浏览器类型,用JS其实有几招非常常见,特别是要分清楚是不是IE或者火狐。咱们最常用的就是通过navigator.userAgent这个只读字符串,来确认浏览器身份。举个例子:
- 判断是不是IE浏览器,可以写成这样:
var isIE = navigator.userAgent.toUpperCase().indexOf("MSIE") > -1 ? true : false;
- 判断是不是火狐浏览器:
var isFirefox = navigator.userAgent.toUpperCase().indexOf("FIREFOX") > -1 ? true : false;
这里还得提醒一句哈,userAgent里偶尔会有戏精,比如Opera浏览器,它会伪装成IE,为此咱们会额外用navigator.userAgent.indexOf('Opera') === -1来排除掉它。
还有一个非常有名的判断方式是通过事件监听方法的判断:
window.attachEvent只有在IE浏览器里才存在。window.addEventListener是现代浏览器的标配,IE老版本不支持。
所以判断IE的条件是:
if(!!window.attachEvent) {
// 这里就是IE哦
}
反之,如果window.addEventListener存在,那就是非IE的现代浏览器了。

怎样用JS判断IE特别是旧版本 以及调用对应的CSS文件
旧版IE浏览器,那真的是有点让人头疼!尤其是IE9以前的版本,很多现代功能根本不支持。我们可以这样来判断它:
- 判断是否IE6、IE7这类版本:
if(navigator.appName == "Microsoft Internet Explorer") {
var versionInfo = navigator.appVersion.split(";");
var version = versionInfo[1].replace(/[ ]/g,"");
if(version === "MSIE6.0" || version === "MSIE7.0") {
alert("您使用的IE版本太低哦,建议升级浏览器!");
}
}
这下就能针对这些老版本给用户一个温馨提示,不然页面可能很糟糕。
- 关于给不同浏览器加载对应的CSS文件,这个也得巧劲用足哈!特别是IE有自己的条件注释,写法类似:
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="ie-style.css" />
<![endif]-->
这玩意儿行之有效,而且简单粗暴。其他浏览器会直接把这段视为注释忽略掉,只有IE会解析执行,从而加载专门给它写的CSS样式。
- 另外,也可以通过JS动态检测浏览器后,调用不同的CSS,比如:
if(isIE){
// 加载IE专属样式
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'ie-style.css';
document.head.appendChild(link);
} else if(isFirefox){
// 加载火狐的样式
}
-
对于更细致的判断,比如判断浏览器是否用“极速模式”或者是Chrome内核,这种就更得看
userAgent里是不是包含了“Chrome”或者特定关键词来区分了。 -
另外一个很有意思的技巧,用JS判断浏览器关闭还是刷新,也蛮实用。虽然
onunload和onbeforeunload都可以用来监听关闭事件,但没法完全区分刷新和关闭,代码里通过检测鼠标点击位置和事件对象的小妙招,能大大提升准确度。

相关问题解答
-
怎么用JS快速判断是不是IE浏览器?
其实特别简单啦,咱用!!window.attachEvent这个小检测就能搞定!只要结果为真,那基本就是IE。顺带提醒,IE老版本才有这个API,例如IE11以下。用起来不用复杂写法,真的是超级爽快。 -
为什么要用条件注释来给IE加载专属CSS文件?
呵呵,这玩意在IE里简直是神器!IE专属解析这些格式,其他浏览器全忽略,完全不打扰它们。这样咱们就能写优化IE的样式而不影响其他浏览器,真是各取所需的好办法呀。 -
怎么辨别IE9以前版本给用户提示换浏览器?
弄个简单的navigator.appVersion解析下就行,在判断到版本号为6、7或者8时,给用户弹提示啥的。比如直接alert("建议升级下您的浏览器哦,体验更好!"),既贴心又有效。 -
用JS能完美区分浏览器关闭和刷新事件吗?
哎呀,这个真的很难做到100%准确。一般用onbeforeunload和onunload监听,但没法区分用户到底点了刷新还是关闭窗口。有些高手会结合鼠标事件和位置来做权衡判断,效果更接近完美,但还是有小瑕疵哈。开发中得根据业务需要灵活处理。
本文来自作者[胥祥]投稿,不代表跃庆号立场,如若转载,请注明出处:https://www.mingcaifu.com/bkjy/202511-V38bw0ZDuJS.html
评论列表(3条)
我是跃庆号的签约作者“胥祥”
本文概览:如何用JS判断浏览器类型是不是IE或火狐浏览器 说到判断浏览器类型,用JS其实有几招非常常见,特别是要分清楚是不是IE或者火狐。咱们最常用的就是通过这个只读字符串,来确认浏览器...
文章不错《JS怎么判断浏览器类型 如何识别IE和火狐浏览器》内容很有帮助