javascript如何判断浏览器类型?

更新日期: 2019-12-27阅读: 1.7k标签: 浏览器

不同的浏览器有不同的属性,你知道怎么来判断浏览器的类型吗?下面我们来看一下如何使用JavaScript判断浏览器类型。

使用浏览器的userAgent来判断,userAgent是navigator的属性方法,可以返回客户机发送服务器的头部信息。作用是返回当前用户所使用的什么浏览器。

       var explorer = window.navigator.userAgent ;
         //判断是否为IE浏览器
        if (explorer.indexOf("MSIE") >= 0) {
            return 'ie';
        }
        //判断是否为Firefox浏览器
        else if (explorer.indexOf("Firefox") >= 0) {
            return 'Firefox';
        }
        //判断是否为Chrome浏览器
        else if(explorer.indexOf("Chrome") >= 0){
            return 'Chrome';
        }
        //判断是否为Opera浏览器
        else if(explorer.indexOf("Opera") >= 0){
            return 'Opera';
        }
        //判断是否为Safari浏览器
        else if(explorer.indexOf("Safari") >= 0){
            return 'Safari';
        }

实际上,通过检测userAgent的值来判断浏览器类型是不可靠的,也是不推荐的,因为用户可以修改userAgent 的值。比如:

Firefox中,你可以通过在 about:config 页面添加并修改
general.useragent.override选项的值来覆盖默认的用户代理字符串。一些Firefox扩展也可以用其他方式修改这个值,但它们通常只会修改发送到服务器的User-Agent请求头的值,而不会影响 JavaScript 代码中获取的 window.navigator.userAgent 属性的值。

Opera 6+ 中允许用户通过菜单选择不同的用户代理字符串。

Microsoft Internet Explorer 使用注册表来配置自己的用户代理字符串。

Safari 和 iCab 也允许用户修改其用户代理字符串,来将自己伪装成 Internet Explorer 或 Netscape。


通过各个浏览器的特征来判断

IE
只有IE支持创建ActiveX控件,它有一个其他浏览器没有的东西,就是ActiveXObject函数。只要判断window对象存在ActiveXObject函数,就可以明确判断出当前浏览器是IE

Safari
Safari浏览器中有一个其他浏览器没有的openDatabase函数,可做为判断Safari的标志

Chrome
Chrome有一个MessageEvent函数,但Firefox也有。不过,好在Chrome并没有Firefox的getBoxObjectFor函数,根据这个条件还是可以准确判断出Chrome浏览器的

Firefox

Firefox中的dom元素都有一个getBoxObjectFor函数,用来获取该DOM元素的位置和大小(IE对应的中是getBoundingClientRect函数)。这是Firefox独有的,判断它即可知道是当前浏览器是Firefox

Opera
Opera提供了专门的浏览器标志,就是window.opera属性

if (window.ActiveXObject)
return "IE";
else if (document.getBoxObjectFor)
return "Firefox";
else if (window.MessageEvent && !document.getBoxObjectFor)
return "Chrome";
else if (window.opera)
return "Opera";
else if (window.openDatabase)
return "Safari";

链接: https://www.fly63.com/article/detial/7812

浏览器禁用了javascript,各种浏览器如何开启javascript的方法总汇

您的浏览器禁用了JS脚本运行,请启用该功能。怎么解除浏览器禁用js?这篇文章将总结整理各个浏览器如何开启、禁用javascript的方法总汇。

浏览器的回流与重绘 (Reflow & Repaint)

浏览器使用流式布局模型 (Flow Based Layout)。浏览器会把HTML解析成DOM,把CSS解析成CSSOM,DOM和CSSOM合并就产生了Render Tree。有了RenderTree,我们就知道了所有节点的样式,然后计算他们在页面上的大小和位置,最后把节点绘制到页面上。

IE6浏览器有哪些常见的bug,以及解决IE6常用bug的方法

IE6不支持min-height,解决办法使用css hack,ol内li的序号全为1,不递增。解决方法:为li设置样式display: list-item;定位父元素overflow: auto;,包含position: relative;子元素,子元素高于父元素时会溢出。解决办法:

css重设样式_清除浏览器的默认样式

由于不同的浏览器默认的样式也不同,所以在网页开发前设置一个公用样式,来清除各个浏览器的默认样式,已达到做的网页在各个浏览器中达到统一。

浏览器访问一个网站所经历的步骤

浏览器访问网站的步骤:Chrome搜索自身的DNS缓存、读取本地HOST文件、浏览器发起一个DNS的一个系统调用、浏览器获得域名对应的IP地址后,发起HTTP三次握手、TCP/IP连接建立起来、服务器端接受到了这个请求、浏览器根据拿到的资源对页面进行渲染

一个新式的基于文本的浏览器 Browsh

Browsh是一个纯文本浏览器,可以运行在大多数的TTY终端环境和任何浏览器。目前,终端客户端比浏览器客户端更先进。终端客户端即时更新和交付,以便于体验新的功能,例如,你可以观看视频。

浏览器内核有哪些?主流浏览器的所使用的内核介绍

一般说的浏览器内核是指浏览器最重要的核心部分,RenderingEngine,翻译成中文大概意思就是“解释引擎”,我们一般称为浏览器内核。由于不同的内核各自有一套自己的渲染网页和解释页面代码的机制,所以就会有一些问题存在。

程序员眼中的浏览器是什么样的?IE:有本事你卸了我啊

主流浏览器之争从上个世纪开就开始,已经持续了很长的时间。人们都在笑话IE,纷纷转向其它浏览器。今天,我向大家分享一下针对IE的搞笑图片,只是逗乐而已,喝杯咖啡,坐下来慢慢享受吧。

精打细算浏览器空闲时间

有时候我们希望在浏览器中执行一些低优先级的任务,比如记录统计数据、做一些耗时的数据处理等,暂且将其称为后台任务。这些任务跟动画计算、合成帧、响应用户输入等高优先级的任务共享主线程

深入浏览器事件循环的本质

浏览器的事件循环,前端再熟悉不过了,每天都会接触的东西。但我以前一直都是死记硬背:事件任务队列分为macrotask和microtask,浏览器先从macrotask取出一个任务执行,再执行microtask内的所有任务,接着又去macrotask取出一个任务执行

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!