博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js还能做的那些事
阅读量:6258 次
发布时间:2019-06-22

本文共 4045 字,大约阅读时间需要 13 分钟。

1.获取网络情况

function getNetworkType() {  var ua = navigator.userAgent;  var networkStr = ua.match(/NetType\/\w+/) ? ua.match(/NetType\/\w+/)[0] : 'NetType/other';  networkStr = networkStr.toLowerCase().replace('nettype/', '');  var networkType;  switch (networkStr) {      case 'wifi':          networkType = 'wifi';          break;      case '4g':          networkType = '4g';          break;      case '3g':          networkType = '3g';          break;      case '3gnet':          networkType = '3g';          break;      case '2g':          networkType = '2g';          break;      default:          networkType = 'other';  }  return networkType;}

2.获取当年是iOS还是Android

if (/iphone/i.test(navigator.userAgent)) {    console.log('我是ios'); } else if (/android/i.test(navigator.userAgent)) {   console.log('我是Android'); }

3.判断终端类型

var ua = window.navigator.userAgent;var Platform = {  "android": /android\s(\d+\.\d)/i.test(ua) ? +RegExp["\x241"] : 0,  "ios": /iPad|iPod|iPhone/i.test(ua),  "iphone": /iPhone\sOS\s(\d[_\d]*)/i.test(ua) ? +parseFloat(RegExp['\x241'].replace(/_/g, ".")) : 0,  "ipad": /iPad.*OS\s(\d[_\d]*)/i.test(ua) ? +parseFloat(RegExp['\x241'].replace(/_/g, ".")) : 0,  "ipod": /iPod\sOS\s(\d[_\d]*)/i.test(ua) ? +parseFloat(RegExp['\x241'].replace(/_/g, ".")) : 0,  "mqqBrowser": /MQQBrowser\/(\d+)/i.test(ua) ? +parseFloat(RegExp['\x241']) : 0,  "uc": /UC/i.test(ua) || /UCWEB/i.test(window.navigator.vendor),  "micromessenger": /MicroMessenger/i.test(ua),  "i9300": /i9300/i.test(ua),  "Y610": /Y610-U00/i.test(ua),  "huawei": /HUAWEI/i.test(ua),  "sonyEricssonLT26i": /sonyEricssonLT26i/i.test(ua),  "google": /google/i.test(window.navigator.vendor),  "chrome": /Chrome\/([.0-9]*) /.test(ua) ? RegExp.$1 : null,  "iosQQ": /(iPad|iPhone|iPod).*?QQ/g.test(ua), // 摘自手Q api(http://mqq.oa.com/api/), .*?的?阻止*的贪婪匹配  "androidQQ": /\bV1_AND_SQ_/.test(ua), // 摘自手Q api  "weibo": /T(?:X|encent)MicroBlog/gi.test(ua),  "YiXin": /YiXin/gi.test(ua)};Platform.mobileQQ = Platform.iosQQ || Platform.androidQQ;Platform.mqq = Platform.mqqBrowser; // Deprecated, TODO: remove it/** * 检测是否为QQ手机浏览器v4。 */Platform.isQQBrowser4 = function() {  return navigator != null && navigator.userAgent.indexOf("MQQBrowser/4.0") >= 0;}Platform.isQQBrowserCss = function() {  return navigator == null || (navigator != null && (    navigator.userAgent.indexOf("MQQBrowser/1") != -1 || navigator.userAgent.indexOf("MQQBrowser/2") != -1 ||    navigator.userAgent.indexOf("MQQBrowser/3") != -1 || navigator.userAgent.indexOf("MQQBrowser/4") != -1 ||    navigator.userAgent.indexOf("MQQBrowser/5.0") != -1 || navigator.userAgent.indexOf("MQQBrowser/5.1") != -1 ||    navigator.userAgent.indexOf("MQQBrowser/5.2") != -1 || navigator.userAgent.indexOf("MQQBrowser/5.3") != -1));}/** * 检测是否支持css3. * iOS平台非UC浏览器 及 android 平台4.0以上版本原生浏览器和支持css3的qq浏览器 */Platform.supportsCSS3 = function supportsCSS3() {  if (Platform.sonyEricssonLT26i || Platform.i9300 || Platform.Y610) {    //特殊手机,css支持,但实现的不好,故强制使用dom版    return false;  }  return (Platform.ios && !Platform.uc) ||    (Platform.android >= 4 && Platform.mqq && !Platform.isQQBrowserCss()) ||    (Platform.android >= 4 && !Platform.mqq && Platform.google && !Platform.uc);};/** * 解决9300,sin0,cos0异常的问题 */(function() {  if (Platform.i9300) {    var sin = Math.sin;    var cos = Math.cos;    Math.sin = function(r) {      if (!r) {        return 0;      }      return sin(r);    }    Math.cos = function(r) {      if (!r) {        return 1;      }      return cos(r);    }  }})();window.Platform = Platform;if (typeof(module) !== 'undefined') {  module.exports = Platform;} else if (typeof define === 'function' && define.amd) {  define([], function() {    'use strict';    return Platform;  });}

 4.监听页面的返回操作,做想做的事情

pushHistory(); //先调用此方法,将#压入  window.addEventListener("popstate", function(e) {     //这里写返回的时候想做的事情  }, false);   function pushHistory() {     var state = {       title: "title",       url: "#"    };     window.history.pushState(state, "title", "#");   }

 

转载于:https://www.cnblogs.com/superil/p/9303892.html

你可能感兴趣的文章
Spring Cloud规范实战
查看>>
javascript event 事件
查看>>
2012自学CCNP路由与交换之三网络设备造型及验收
查看>>
lf4j+logback配置方式,logback.groovy使用备忘
查看>>
RHEL,centOS下vncserver,service命令关联的rpm包
查看>>
slf4j+logback配置方式,logback.groovy使用备忘
查看>>
android中阿拉伯文研究
查看>>
SCCM TP4安装客户端Agent
查看>>
配置PIX515E DMZ的基本方法与故障排除
查看>>
HA Cluster—ansible批量操作
查看>>
SpringMVC那点事
查看>>
大话nbu三(配置media server存储)
查看>>
【嵌入式】内存管理,虚拟存储
查看>>
Linux多线程实践(2) --线程基本API
查看>>
从BaseActivity与BaseFragment的封装谈起
查看>>
Java Web开发相关连接
查看>>
虚拟机内存中数据细节
查看>>
ZigBee Silicon Labs/Ember EFR32MG/EM357 1.1 总体框架
查看>>
信号结构类的时间开销对比
查看>>
在Ubuntu上部署开源博客系统Blog_mini
查看>>