zoukankan      html  css  js  c++  java
  • 判断移动设备类型

    window.Xfun = {
      "getById" : function getById( id ) {
          return document.getElementById(id);
      },
      "getUrlParam":function (name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
        var r = decodeURI(window.location.search).substr(1).match(reg); //匹配目标参数
        if (r != null) { return unescape(r[2]); } return null;
      },
      "getUrlParam2":function (name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
        var r = decodeURIComponent(window.location.search).substr(1).match(reg); //匹配目标参数
        if (r != null) { return unescape(decodeURI(r[2])); } return null;
      },
      versions: function () {
        var u = navigator.userAgent, app = navigator.appVersion;
        return { //移动终端浏览器版本信息
          ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
          android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器
          iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
          iPad: u.indexOf('iPad') > -1, //是否iPad
        };
      },
      getWindowSize:function(){
        var size ={"width":0,"height":0};
        if (window.innerWidth && window.innerHeight)
        {
          size.width= (window.innerWidth);
          size.height= (window.innerHeight);
        }else if(document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth){
          size.width= ( document.documentElement.clientWidth);
          size.height= (document.documentElement.clientHeight);
        }
        return size;
      },
      is_weixn : function (){
        var ua = navigator.userAgent.toLowerCase();
        if(ua.match(/MicroMessenger/i)=="micromessenger") {
          return true;
        } else {
          return false;
        }
     }
    };
    /*
    * $Id: base64.js,v 2.15 2014/04/05 12:58:57 dankogai Exp dankogai $
    *
    * Licensed under the BSD 3-Clause License.
    * http://opensource.org/licenses/BSD-3-Clause
    *
    * References:
    * http://en.wikipedia.org/wiki/Base64
    */

    (function(global) {
    'use strict';
    // existing version for noConflict()
    var _Base64 = global.Base64;
    var version = "2.1.9";
    // if node.js, we use Buffer
    var buffer;
    if (typeof module !== 'undefined' && module.exports) {
    try {
    buffer = require('buffer').Buffer;
    } catch (err) {}
    }
    // constants
    var b64chars
    = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
    var b64tab = function(bin) {
    var t = {};
    for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;
    return t;
    }(b64chars);
    var fromCharCode = String.fromCharCode;
    // encoder stuff
    var cb_utob = function(c) {
    if (c.length < 2) {
    var cc = c.charCodeAt(0);
    return cc < 0x80 ? c
    : cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))
    + fromCharCode(0x80 | (cc & 0x3f)))
    : (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))
    + fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
    + fromCharCode(0x80 | ( cc & 0x3f)));
    } else {
    var cc = 0x10000
    + (c.charCodeAt(0) - 0xD800) * 0x400
    + (c.charCodeAt(1) - 0xDC00);
    return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07))
    + fromCharCode(0x80 | ((cc >>> 12) & 0x3f))
    + fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
    + fromCharCode(0x80 | ( cc & 0x3f)));
    }
    };
    var re_utob = /[uD800-uDBFF][uDC00-uDFFFF]|[^x00-x7F]/g;
    var utob = function(u) {
    return u.replace(re_utob, cb_utob);
    };
    var cb_encode = function(ccc) {
    var padlen = [0, 2, 1][ccc.length % 3],
    ord = ccc.charCodeAt(0) << 16
    | ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8)
    | ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),
    chars = [
    b64chars.charAt( ord >>> 18),
    b64chars.charAt((ord >>> 12) & 63),
    padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),
    padlen >= 1 ? '=' : b64chars.charAt(ord & 63)
    ];
    return chars.join('');
    };
    var btoa = global.btoa ? function(b) {
    return global.btoa(b);
    } : function(b) {
    return b.replace(/[sS]{1,3}/g, cb_encode);
    };
    var _encode = buffer ? function (u) {
    return (u.constructor === buffer.constructor ? u : new buffer(u))
    .toString('base64')
    }
    : function (u) { return btoa(utob(u)) }
    ;
    var encode = function(u, urisafe) {
    return !urisafe
    ? _encode(String(u))
    : _encode(String(u)).replace(/[+/]/g, function(m0) {
    return m0 == '+' ? '-' : '_';
    }).replace(/=/g, '');
    };
    var encodeURI = function(u) { return encode(u, true) };
    // decoder stuff
    var re_btou = new RegExp([
    '[xC0-xDF][x80-xBF]',
    '[xE0-xEF][x80-xBF]{2}',
    '[xF0-xF7][x80-xBF]{3}'
    ].join('|'), 'g');
    var cb_btou = function(cccc) {
    switch(cccc.length) {
    case 4:
    var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
    | ((0x3f & cccc.charCodeAt(1)) << 12)
    | ((0x3f & cccc.charCodeAt(2)) << 6)
    | (0x3f & cccc.charCodeAt(3)),
    offset = cp - 0x10000;
    return (fromCharCode((offset >>> 10) + 0xD800)
    + fromCharCode((offset & 0x3FF) + 0xDC00));
    case 3:
    return fromCharCode(
    ((0x0f & cccc.charCodeAt(0)) << 12)
    | ((0x3f & cccc.charCodeAt(1)) << 6)
    | (0x3f & cccc.charCodeAt(2))
    );
    default:
    return fromCharCode(
    ((0x1f & cccc.charCodeAt(0)) << 6)
    | (0x3f & cccc.charCodeAt(1))
    );
    }
    };
    var btou = function(b) {
    return b.replace(re_btou, cb_btou);
    };
    var cb_decode = function(cccc) {
    var len = cccc.length,
    padlen = len % 4,
    n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0)
    | (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0)
    | (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0)
    | (len > 3 ? b64tab[cccc.charAt(3)] : 0),
    chars = [
    fromCharCode( n >>> 16),
    fromCharCode((n >>> 8) & 0xff),
    fromCharCode( n & 0xff)
    ];
    chars.length -= [0, 0, 2, 1][padlen];
    return chars.join('');
    };
    var atob = global.atob ? function(a) {
    return global.atob(a);
    } : function(a){
    return a.replace(/[sS]{1,4}/g, cb_decode);
    };
    var _decode = buffer ? function(a) {
    return (a.constructor === buffer.constructor
    ? a : new buffer(a, 'base64')).toString();
    }
    : function(a) { return btou(atob(a)) };
    var decode = function(a){
    return _decode(
    String(a).replace(/[-_]/g, function(m0) { return m0 == '-' ? '+' : '/' })
    .replace(/[^A-Za-z0-9+/]/g, '')
    );
    };
    var noConflict = function() {
    var Base64 = global.Base64;
    global.Base64 = _Base64;
    return Base64;
    };
    // export Base64
    global.Base64 = {
    VERSION: version,
    atob: atob,
    btoa: btoa,
    fromBase64: decode,
    toBase64: encode,
    utob: utob,
    encode: encode,
    encodeURI: encodeURI,
    btou: btou,
    decode: decode,
    noConflict: noConflict
    };
    // if ES5 is available, make Base64.extendString() available
    if (typeof Object.defineProperty === 'function') {
    var noEnum = function(v){
    return {value:v,enumerable:false,writable:true,configurable:true};
    };
    global.Base64.extendString = function () {
    Object.defineProperty(
    String.prototype, 'fromBase64', noEnum(function () {
    return decode(this)
    }));
    Object.defineProperty(
    String.prototype, 'toBase64', noEnum(function (urisafe) {
    return encode(this, urisafe)
    }));
    Object.defineProperty(
    String.prototype, 'toBase64URI', noEnum(function () {
    return encode(this, true)
    }));
    };
    }
    // that's it!
    if (global['Meteor']) {
    Base64 = global.Base64; // for normal export in Meteor.js
    }
    })(this);

  • 相关阅读:
    05 单例模式
    04 volatile关键字实现原理
    03 synchronized
    02 java内存模型
    spark性能调优06-数据倾斜处理
    redis缓存架构-03-redis下的replication以及master+slave
    SpringBoot webSocket搭建示例
    Httpclient-(get、post(application/json)、post(application/form-data)、download、upload)
    CentOS-Java 依赖安装
    Git使用教程
  • 原文地址:https://www.cnblogs.com/access520/p/5260504.html
Copyright © 2011-2022 走看看