• js客户端检测


    1.能力检测的基本模式如下:

    //能力检测的基本模式
    if (object.propertyInQuestion) {
    // 使用object.propertyInQuestion
    }
    
    throw new Error("No way to retrieve element")
    
    // 如检查sort是不是函数(存在)
    fucntion isSortable(object) {
    return typeof object.sort == "function";
    }

    在可能情况下,尽量使用typeof 进行能力检测

    // 检测所有浏览器的Flash
    function hasFlash() {
    var result = hasPlugin('Flash');
    if (!result) {
    result = hasIEPlugin('ShockwaveFlash.ShockwaveFlash');
    }
    return result;
    }
    
    // 检测Flash
    // alert(hasFlash());

    对于方法检测

    // 如检查sort是不是函数(存在)
    function isSortable(object) {
    return typeof object.sort == "function";
    }
    
    // 在浏览器环境下测试任何对象的某个特性是否存在
    /**
    * author:Peter Michaux
    */
    function isHostMethod(object, property) {
    var t = typeof object[property];
    return t == "function" || (!!(t == 'object' && object[property])) || t == "unknown";
    }
    
     
    
    //确定浏览器是否支持Netscape风格的插件
    var hasNSplugins = !!(navigator.plugins && navigator.plugins.length);
    
    // 确定浏览器是否具有DOM1级规定的能力
    var hasDOM1 = !!(document.getElementById && document.createElement && docuemnt.getElementByTagName);
    
    
    // 怪癖检测
    var hasDontEnumQuick = function() {
    var o = { toString: function() {} };
    for (var prop in o) {
    if (prop == "toString") {
    return false;
    }
    }
    return true;
    }();

    用户代理检测是客户端检测的最后一个选择,优先使用能力检测和怪癖检测

  • 相关阅读:
    VIJOS1476 旅行规划(树形Dp + DFS暴力乱搞)
    神奇的图片
    How to locate elements/ Object locators for Android devices
    ZT: How to install appium with node.js
    How to get the appPackage and appActivity
    How to enable auto-complete for python in powershell
    Node.js
    Steps to develop an iterative algorithm
    Iterative Algorithm
    FSM
  • 原文地址:https://www.cnblogs.com/sundjly/p/7899037.html
Copyright © 2020-2023  润新知