zoukankan      html  css  js  c++  java
  • Javascript高级编程学习笔记(33)—— 客户端检测(2)怪癖检测

    怪癖检测

    和能力检测类似,但其目标不同

    能力检测的目的是判断浏览器支不支持某种能力

    而怪癖检测的目的是判断浏览器是否存在某些缺陷

    这种时候需要我们执行一段代码来判断浏览器是否有这样的缺陷

    或者说是怪癖(bug)

    一般出现这种情况的浏览器当然是IE了

    就以IE的某个怪癖举例

    在IE8以下有一个bug

    如果某个实例的属性和其原型的不可枚举属性同名,那么这个属性将不会出现在 for-in 循环中

    也就是说实例上的属性被原型上的属性屏蔽了

    其怪癖检测的代码如下:

    var hasDontEnumQuirk = function(){
        var o = {toString:function(){}};
        for(var prop in o){
            if(prop ==="toString"){
                return false;// 如果能遍历出toString则说明浏览器不存在该怪癖
            }
        }
        return true;
    }

    一般来说怪癖是某个浏览器独有的,当这些怪癖会影响我们的代码时,我们就需要做怪癖检测,以做出对应的处理

  • 相关阅读:
    L1和L2正则
    Python基础(一)
    消息分发
    StringList 自定义快速排序
    Delphi Length函数
    接口的委托实现(通过接口)
    接口委托实现--通过类的对象
    排序
    Socket编程(摘抄)
    Delphi线程同步
  • 原文地址:https://www.cnblogs.com/lhyxq/p/10224637.html
Copyright © 2011-2022 走看看