首页 > 代码库 > javascript判断设备类型-手机(mobile)、安卓(android)、电脑(pc)、其他(ipad/iPod/Windows)等

javascript判断设备类型-手机(mobile)、安卓(android)、电脑(pc)、其他(ipad/iPod/Windows)等

使用device.js检测设备并实现不同设备展示不同网页

html代码:

<!doctype html><html><head>  <meta charset="utf-8">  <title></title>  <script src="device.js"></script></head><body style="margin: auto; position: absolute; width:100%; height: 100%">  <script>       var isMobile = device.mobile(),       isIos = device.ios(),     isAndroid = device.android();      if(isMobile){        alert("手机");      }else{        alert("pc");      }      if(isIos){        alert("ios");      }      if(isAndroid){        alert(安卓);      }    </script></body></html>

引入device.js

(function() {  var previousDevice, _addClass, _doc_element, _find, _handleOrientation, _hasClass, _orientation_event, _removeClass, _supports_orientation, _user_agent;  previousDevice = window.device;  window.device = {};  _doc_element = window.document.documentElement;  _user_agent = window.navigator.userAgent.toLowerCase();  device.ios = function() {    return device.iphone() || device.ipod() || device.ipad();  };  device.iphone = function() {    return _find(‘iphone‘);  };  device.ipod = function() {    return _find(‘ipod‘);  };  device.ipad = function() {    return _find(‘ipad‘);  };  device.android = function() {    return _find(‘android‘);  };  device.androidPhone = function() {    return device.android() && _find(‘mobile‘);  };  device.androidTablet = function() {    return device.android() && !_find(‘mobile‘);  };  device.blackberry = function() {    return _find(‘blackberry‘) || _find(‘bb10‘) || _find(‘rim‘);  };  device.blackberryPhone = function() {    return device.blackberry() && !_find(‘tablet‘);  };  device.blackberryTablet = function() {    return device.blackberry() && _find(‘tablet‘);  };  device.windows = function() {    return _find(‘windows‘);  };  device.windowsPhone = function() {    return device.windows() && _find(‘phone‘);  };  device.windowsTablet = function() {    return device.windows() && _find(‘touch‘);  };  device.fxos = function() {    return (_find(‘(mobile;‘) || _find(‘(tablet;‘)) && _find(‘; rv:‘);  };  device.fxosPhone = function() {    return device.fxos() && _find(‘mobile‘);  };  device.fxosTablet = function() {    return device.fxos() && _find(‘tablet‘);  };  device.meego = function() {    return _find(‘meego‘);  };  device.mobile = function() {    return device.androidPhone() || device.iphone() || device.ipod() || device.windowsPhone() || device.blackberryPhone() || device.fxosPhone() || device.meego();  };  device.tablet = function() {    return device.ipad() || device.androidTablet() || device.blackberryTablet() || device.windowsTablet() || device.fxosTablet();  };  device.portrait = function() {    return Math.abs(window.orientation) !== 90;  };  device.landscape = function() {    return Math.abs(window.orientation) === 90;  };  device.noConflict = function() {    window.device = previousDevice;    return this;  };  _find = function(needle) {    return _user_agent.indexOf(needle) !== -1;  };  _hasClass = function(class_name) {    var regex;    regex = new RegExp(class_name, ‘i‘);    return _doc_element.className.match(regex);  };  _addClass = function(class_name) {    if (!_hasClass(class_name)) {      return _doc_element.className += " " + class_name;    }  };  _removeClass = function(class_name) {    if (_hasClass(class_name)) {      return _doc_element.className = _doc_element.className.replace(class_name, "");    }  };  if (device.ios()) {    if (device.ipad()) {      _addClass("ios ipad tablet");    } else if (device.iphone()) {      _addClass("ios iphone mobile");    } else if (device.ipod()) {      _addClass("ios ipod mobile");    }  } else if (device.android()) {    if (device.androidTablet()) {      _addClass("android tablet");    } else {      _addClass("android mobile");    }  } else if (device.blackberry()) {    if (device.blackberryTablet()) {      _addClass("blackberry tablet");    } else {      _addClass("blackberry mobile");    }  } else if (device.windows()) {    if (device.windowsTablet()) {      _addClass("windows tablet");    } else if (device.windowsPhone()) {      _addClass("windows mobile");    } else {      _addClass("desktop");    }  } else if (device.fxos()) {    if (device.fxosTablet()) {      _addClass("fxos tablet");    } else {      _addClass("fxos mobile");    }  } else if (device.meego()) {    _addClass("meego mobile");  } else {    _addClass("desktop");  }  _handleOrientation = function() {    if (device.landscape()) {      _removeClass("portrait");      return _addClass("landscape");    } else {      _removeClass("landscape");      return _addClass("portrait");    }  };  _supports_orientation = "onorientationchange" in window;  _orientation_event = _supports_orientation ? "orientationchange" : "resize";  if (window.addEventListener) {    window.addEventListener(_orientation_event, _handleOrientation, false);  } else if (window.attachEvent) {    window.attachEvent(_orientation_event, _handleOrientation);  } else {    window[_orientation_event] = _handleOrientation;  }  _handleOrientation();}).call(this);

api列表:

DeviceJavaScript Method
Mobiledevice.mobile()
Tabletdevice.tablet()
iOSdevice.ios()
iPaddevice.ipad()
iPhonedevice.iphone()
iPoddevice.ipod()
Androiddevice.android()
Android Phonedevice.androidPhone()
Android Tabletdevice.androidTablet()
BlackBerrydevice.blackberry()
BlackBerry Phonedevice.blackberryPhone()
BlackBerry Tabletdevice.blackberryTablet()
Windowsdevice.windows()
Windows Phonedevice.windowsPhone()
Windows Tabletdevice.windowsTablet()
Firefox OSdevice.fxos()
Firefox OS Phonedevice.fxosPhone()
Firefox OS Tabletdevice.fxosTablet()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 




实例下载:设备检测demo(http://files.cnblogs.com/zhidong123/devide-test.rar)