最近看了一些面试题,有些还比较有意思,所以拿出来分享一下

1、最短IE浏览器检测

if(!-[1,])//我试了多次,在windows10的ie不行啊console.log("这是ie浏览器");   

变种 还有 !+[1,],这个俄国人打破了,现在只要6 bytes!它利用了IE与标准浏览器在处理数组的toString方法的差异做成的。对于标准游览器,如果数组里面最后一个字符为逗号,JS引擎会自动剔除它。详见这里 恭喜你,Aleko ,你真是我的偶像!
据说之前还有 var ie = !+"\v1"; 7个字节的《32 bytes, ehr … 9, ehr … 7!!! to know if your browser is IE》,讲述外国人是如何把IE的判定从32 bytes一步步缩简成7 bytes!的故事 。

2、事件监听区分

IE: window.attachEvent 非IE:window.addEventListener

if (window.attachEvent) { window.attachEvent("onload", remove);
} else if (window.addEventListener) { window.addEventListener("load", remove, false);
}
function remove() { var div = document.getElementByIdx_x("divprogressbar"); document.body.removeChild(div);
}
//或者也可以用
if (document.all){//IEwindow.attachEvent('onload',remove)
}else{//FireFoxwindow.addEventListener('load',remove,false);
} 

3、属性检测 document.all 方法

if(document.all){ //IE代码
}else{ //其他
} 

其实这么做不够,document.all能区分出FireFox,却无法区分Opera,因为Opera支持document.all.
我现在的做法是:
var isIE = document.all && window.external;

Opera不支持window.external,所以这么做就比较保险了。

4、浏览器属性

navigator.userAgent 来检测

function getExplorer() {var explorer = window.navigator.userAgent ;//ie if (explorer.indexOf("MSIE") >= 0) {alert("ie");}//firefox else if (explorer.indexOf("Firefox") >= 0) {alert("Firefox");}//Chromeelse if(explorer.indexOf("Chrome") >= 0){alert("Chrome");}//Operaelse if(explorer.indexOf("Opera") >= 0){alert("Opera");}//Safarielse if(explorer.indexOf("Safari") >= 0){alert("Safari");}
}

JavaScript做浏览器检测相关推荐

  1. python+selenium+chrome 做滑动验证码 会被浏览器检测到使用的自动软件导致滑动验证失败

    python+selenium+chrome 做滑动验证码 会被浏览器检测到使用的自动软件导致滑动验证失败 解决方法:代码中添加: import time from selenium import w ...

  2. 如何使用JavaScript或JQuery检测一个URL文件是否存在?

    如何使用JavaScript或JQuery检测一个URL文件是否存在? How do I check if file exists in jQuery or JavaScript? 问题: 如何检查服 ...

  3. javascript判断浏览器和终端类型,js如何区分手机、电脑终端和浏览器

    判断浏览器类型 复制代码代码如下: if ( window.sidebar && "object" == typeof( window.sidebar ) & ...

  4. 利用javascript判断浏览器是否已经安装ActiveX控件和是否禁止运行ActiveX控件

     从微软给IE打上SP2以后,当IE在打开一些含有ActiveX控件的网页是,不再像以前那样,弹出提示框,让用户选择是否安装控件:现在默认情况下给隐藏起来,普通用户根本不知道是怎么回事.公司产品同 ...

  5. 使用javascript修复浏览器中12个常见而又头痛的问题

    简介 使用javascript修复浏览器中12个常见而又头痛的问题,大部分都使用了jQuery的插件来处理的. 我们提倡无论何时都尽可能地使用CSS,这样我们更容易取得成功.现在浏览器对CSS的支持已 ...

  6. JavaScript判断浏览器类型及版本

    JavaScript判断浏览器类型及版本 你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器. 几天前,浏览器家族有 ...

  7. Javascript 获取浏览器窗口中文档(视口)可用尺寸的方法

    摘要: 由于浏览器的差异,许多信息的获取都要考虑兼容性,窗口中文档可用尺寸是一个经常需要用到的信息,由于浏览器不同甚至版本不同,获取的方法也不一样,本文介绍的函数能够兼容各种浏览器,获取这一信息.同时 ...

  8. JavaScript判断浏览器类型及版本(新增谷歌的Chrome)

    来源:http://blog.tripdev.com/?tid=164 JavaScript是前端开发的主要语言,我们可以通过编写JavaScript程序来判断浏览器的类型及版本.JavaScript ...

  9. javascript的数据检测总结

    目录 javaScript的数据检测 1.typeof 2.instanceof 3.constructor 4.Object.prototype.toString.call()--------- 一 ...

最新文章

  1. 介绍一个开源的高分辨率遥感影像处理库-OTB
  2. VBS基础篇 - 运算符(1) - 运算符优先级
  3. 【Linux网络编程笔记】TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—实践篇
  4. 结构体的一些形式理解
  5. 2020 年 Flink 学习资料整合,建议收藏
  6. python中如何计算集合的长度_Python如何计算序列长度 python dataframe中元素如何统计?...
  7. 2017年度计算机科学各领域热点词汇
  8. Python进阶-----类的内置item属性方法
  9. Windows Server 2008下IIS 7配置ASP+ACCESS环境
  10. 作为技术面试官,我在面试时考虑什么?
  11. html表格制作实战
  12. 树莓派系统安装和环境配置
  13. 微信登录显示连接失败,请检查网络
  14. java 字母金字塔_打印大写字母三角形
  15. 分治法 逆序对计数 O(nlgn)
  16. 整理:对开发者有用的英文网站合集
  17. 华清远见-重庆中心-数据库阶段技术总结/知识点梳理/个人总结
  18. 新一代视频压缩技术 H.265 解析
  19. 发送打印命令后打印机没反应,重启打印机之后才能打印
  20. 黑客零基础入门:手把手带你实现简单的QQ/邮件攻击,注册表/系统安全防护,学不会请给我只因木马

热门文章

  1. Python爬虫实战- 爬取整个网站112G-8000本pdf epub格式电子书下载
  2. C++知三角形三边求面积
  3. 教你十步实现内网穿透
  4. oracle表的时区怎么查,ORACLE中的时区(time zone)
  5. python将excel数据提取到word
  6. 3.6 常用符号在数据输入中的使用 [原创Excel教程]
  7. 纪念一次面试机试失败的题目:
  8. 运用matlab求解梁的变形例题,matlab与结构力学
  9. linux下raid(md)驱动源码解析
  10. java.sql.SQLException: No suitable driver found for jdbc