客户端检测

前端开发中,在呈现引擎、浏览器、平台、操做系统、引动设备、游戏系统存在差别的状况下,咱们的代码会出现不少不兼容问题。前端

而,客户端检测,就是分辨上述6个种类的方法,进而可使咱们针对不一样的状况运行不一样的代码。可是客户端检测是很是麻烦的,这毫不是第一个考虑的方式。android

具体的客户端检测,能够在JavaScript高级编程设计的  客户端检测 这一章获得认真的解析,包括方法。也能够在网上搜索。不过多介绍。ios

咱们平时开发中,为了写出兼容的代码,客户端检测用的绝对不是最多的,它常常是排到最后一位来使用,也就是完全没办法的时候才用。web

下面来讲一下,其它的优先级比较高的检测方式。chrome

一、能力检测:编程

咱们能够判断一个方法是否能用,或者一个方法是否存在,而后再使用这些方法,这样就不会出现错误。也就是先检测有没有这项能力。windows

二、怪癖检测:它的目标是 识别浏览器的特殊行为,如IE8更早版本,存在一个bug,某个实例属性与[[Enumerable]]标记为false的某个原型属性同名,那么该实例属性将不会出如今for-in循环中。能够yoga以下代码来检测;浏览器

    var hasDontEnumQuirk = function(){
        var o = { toString:function(){} };
        for ( var prop in o){
            if(prop == "toString"){
                return false;
            }
        }
        return true;
    }();
    //此代码 就能够检测 存不存在这种怪癖

从而能够针对这种状况写一些兼容代码;iphone

而在前两种方法都解决不了兼容性的状况下,咱们才采用  客户端检测  ,ui

肯定是什么引擎(opera、webkit、KHTML、Gecko、IE);

肯定是什么浏览器:chrome、opera、konq、safari、firefox、IE;

肯定是什么平台:win(windows)、mac、xll(Unix);

肯定是什么操做windows系统:"2000"、"XP"、"Vista"、"7"、"NT"、"ME"、RegExp["$1"];

肯定是什么移动设备:iphone、ipod、ios、android、nokiaN、winMobile;

肯定是什么游戏系统:wii、ps

当咱们检测出这些信息后,就能够根据不一样状况写兼容代码了,不过这种方法,不到万不得已,不推荐使用。

相关文章
相关标签/搜索