这是js代码

/*
* 2016、11、10
* SunJingxin
* V 1.0.0
*
*/
(function(){
/*
* 使用方法:
* 一、引入ua.js
* 二、直接调用 MobilePort 对象的属性与方法。
* 三、目前共1个属性10个方法
* MobilePort 对象
* 属性:MobilePort.back;// 数组 内容如下
* 方法:MobilePort.androidBrowser(callBack) 1 安卓浏览器 //callBack 回调只有在安卓浏览器下执行
* 方法:MobilePort.iosBrowser(callBack) 2 ios浏览器 // 下面全部类似
* 方法:MobilePort.qqBrowser(callBack) 3 QQ浏览器
* 方法:MobilePort.ucBrowser(callBack) 4 uc浏览器
* 方法:MobilePort.wxBrowser(callBack) 5 微信浏览器
* 方法:MobilePort.pc(callBack) 6 pc浏览器
* 方法:MobilePort.move(callBack) 7 移动浏览器
* 方法:MobilePort.androidApp(callBack, parameter) 8 安卓APP
* 方法:MobilePort.iosApp(callBack, parameter) 9 iosApp
* 方法:MobilePort.androidWx(callBack) 10 安卓WX
* 方法:MobilePort.iosWx(callBack) 11 iosWX
*
*
*
* callBack 是回调函数,在指定环境下执行的函数。
* parameter 是url上的参数,用于识别APP与Browser(必须),字符串。
* 例如 www.baidu.com?from=app parameter 指 from=app
* from=app 是前后端约定好的指代 App请求的网页。
*
* back数组中可能的值:内核、浏览器、移动端平台、pc端平台 、其他
* webkit Trident Presto Gecko //内核 webkit内核 Trident内核 Presto内核 Gecko内核
* IE chrome firefox opera safari //浏览器 IE浏览器 chrome浏览器 firefox浏览器 opera浏览器 safari浏览器
* UCBrowser MQQBrowser //浏览器 UC浏览器 QQ浏览器
* android ipad iphone //移动端平台 android平台 ipad平台 iphone平台
* Mac windows Linux //pc端平台 Mac平台 windows平台 Linux平台
* move wx //其他 move移动端平台 wx微信浏览器
*/ /*
* 正则赋值 内核
*/
// webkit 内核
var webkit = /webkit/i;
//IE内核
var Trident = /Trident/i;
//opera内核
var Presto = /Presto/i;
//火狐内核
var Gecko = /Gecko/i;
/*
* 正则赋值 浏览器
*/
// chrome 浏览器
var chrome1 = /chrome\/(\d+\.\d+)/i;
// firefox 浏览器
var firefox = /firefox\/(\d+\.\d+)/i;
// opera 浏览器
var opera = /opera(\/| )(\d+(\.\d+)?)(.+?(version\/(\d+(\.\d+)?)))?/i;
// safari 浏览器
var safari = /(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i;
// IE 浏览器
var IE = /msie (\d+\.\d+)/i;
// UC 浏览器
var UCBrowser = /UCBrowser/i;
//QQ浏览器
var MQQBrowser = /MQQBrowser/i;
/*
* 正则赋值 pc端
*/
// macintosh 系统
var Mac = /macintosh/i;
// windows 平台
var windows = /windows/i;
// Linux 平台
var Linux = /Linux/i;
/*
* 正则赋值 移动端
*/
// android 系统
var android = /android/i;
// ipad 系统
var ipad = /ipad/i;
// iphone 系统
var iphone = /iphone/i;
/*
* 正则赋值 其他
*/
// 移动终端
var move =
/(nokia|iphone|android|ipad|motorola|^mot\-|softbank|foma|docomo|kddi|up\.browser|up\.link|htc|dopod|blazer|netfront|helio|hosin|huawei|novarra|CoolPad|webos|techfaith|palmsource|blackberry|alcatel|amoi|ktouch|nexian|samsung|^sam\-|s[cg]h|^lge|ericsson|philips|sagem|wellcom|bunjalloo|maui|symbian|smartphone|midp|wap|phone|windows ce|iemobile|^spice|^bird|^zte\-|longcos|pantech|gionee|^sie\-|portalmmm|jig\s browser|hiptop|^ucweb|^benq|haier|^lct|opera\s*mobi|opera\*mini|320x320|240x320|176x220)/i;
// 微信打开
var wx = /MicroMessenger/i;
var back = [];
var ua = navigator.userAgent; //内核判断
if (webkit.test(ua)) { //webkit
back.push("webkit");
};
if (Trident.test(ua)) { //IE
back.push("Trident");
};
if (Presto.test(ua)) { //欧朋
back.push("Presto");
};
if (Gecko.test(ua)) { //火狐
back.push("Gecko");
};
//浏览器 判断
if (IE.test(ua)) {
back.push("IE");
};
if (chrome1.test(ua)) {
back.push("chrome");
};
if (firefox.test(ua)) {
back.push("firefox");
};
if (opera.test(ua)) {
back.push("opera");
};
if (safari.test(ua)) {
back.push("safari");
};
if (UCBrowser.test(ua)) {
back.push("UCBrowser");
};
if (MQQBrowser.test(ua)) {
back.push("MQQBrowser");
};
//pc 平台判断
if (Mac.test(ua)) {
back.push("Mac");
};
if (windows.test(ua)) {
back.push("windows");
};
if (Linux.test(ua)) {
back.push("Linux");
};
//移动平台 判断
if (android.test(ua)) {
back.push("android");
};
if (ipad.test(ua)) {
back.push("ipad");
};
if (iphone.test(ua)) {
back.push("iphone");
};
//其他
if (move.test(ua)) {
back.push("move");
};
if (wx.test(ua)) {
back.push("wx");
};
MobilePort = {};
//back 包含所有信息
MobilePort.back = back;
//1 android 浏览器
MobilePort.androidBrowser = function (callBack) {
if (android.test(ua)) {
callBack();
} else {
return "error";
}
};
//2 ios 浏览器
MobilePort.iosBrowser = function (callBack) {
if (ipad.test(ua) || iphone.test(ua)) {
callBack();
} else {
return "error";
}
};
//3 QQ 浏览器
MobilePort.qqBrowser = function (callBack) {
if (MQQBrowser.test(ua)) {
callBack();
} else {
return "error";
}
};
//4 UC 浏览器
MobilePort.ucBrowser = function (callBack) {
if (UCBrowser.test(ua)) {
callBack();
} else {
return "error";
}
};
//5 微信打开
MobilePort.wxBrowser = function (callBack) {
if (wx.test(ua)) {
callBack();
} else {
return "error";
}
};
//6 pc 平台
MobilePort.pc = function (callBack) {
if (Linux.test(ua) || windows.test(ua) || Mac.test(ua)) {
callBack();
} else {
return "error";
}
}
//7 移动平台
MobilePort.move = function (callBack) {
if (move.test(ua)) {
callBack();
} else {
return "error";
}
}
//8 androidApp
MobilePort.androidApp = function (callBack, parameter) {
var oUrl = location.search;
var tc = new RegExp(parameter);
if (android.test(ua) && tc.test(oUrl)) {
callBack();
} else {
return "error";
}
};
//9 iosApp
MobilePort.iosApp = function (callBack, parameter) {
var oUrl = location.search;
var tc = new RegExp(parameter);
if ((ipad.test(ua) || iphone.test(ua)) && tc.test(oUrl)) {
callBack();
} else {
return "error";
}
};
//10 androidWx
MobilePort.androidWx = function (callBack) {
if (android.test(ua)&&wx.test(ua)) {
callBack();
} else {
return "error";
}
};
//11 iosWx
MobilePort.iosWx = function (callBack) {
if ((ipad.test(ua)||iphone.test(ua))&&wx.test(ua)) {
callBack();
} else {
return "error";
}
};
})();

这是html 代码

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<script src="ua.js"></script>
<script>
console.log(MobilePort.back);
console.log(MobilePort);
MobilePort.androidWx(function(){
console.log("lll");
alert("")
});
MobilePort.iosWx(function(){
console.log("");
alert("")
})
</script>
</body>
</html>

UA判断打开页面的环境,然后在callBack写相应环境下的回调函数的更多相关文章

  1. 【方法】JS判断当前页面环境:PC端/移动端,安卓/IOS,微信环境/QQ环境等等

    [主要知识] 浏览器设备信息:navigator.userAgent(本文中主要用到知识) 浏览器版本信息:navigator.appVersion var ua = navigator.userAg ...

  2. ES6判断当前页面是否微信浏览器中打开

    1.使用jq判断是否用微信浏览器打开页面 var is_weixin = (function(){return navigator.userAgent.toLowerCase().indexOf('m ...

  3. Easyui datebox控件打开页面就验证解决方法

    问题描述: datebox时间控件有些场景下默认值需要为空,但是为空的情况下打开页面会自动验证,十分影响美观. 实现原理: <input class="easyui-databox&q ...

  4. 根据打开页面加载不同Js

    根据打开页面加载不同Js //根据打开页面加载不同JS $(document).ready(function(){ var href = document.URL; /*获取当前页面的URL*/ if ...

  5. vue项目发布后带路径打开页面报404问题

    环境: 后端,python+uwsgi启动 前端:vue  用nginx运行,指定静态目录 问题 :发布后带路径打开页面报404问题,带路径打开即不是打开的主页 解决方案: https://route ...

  6. 【转】iframe和父页,window.open打开页面之间的引用

    [转]iframe和父页,window.open打开页面之间的引用 iframe和父页,window.open打开页面和被打开页面之间的关系可以通过下面的对象获取到 1)通过iframe加载的,在if ...

  7. JavaScript在A页面判断B页面加载完毕(iframe load)

    今天遇到一个需求,在A页面上判断B页面是否加载完毕(B页面是第三方页面),加载完毕时隐藏loading动画... 而平时我们一般做的事是在B页面上判断B页面是否加载完毕,进行操作. if(docume ...

  8. HTML:模拟链接被按下,在新标签页打开页面,不使用window.open(可能被拦截)

    当按下一个按钮时,想打开一个新的标签页,可以使用window.open去实现但是因为使用window.open在新窗口或者新标签页中打开页面,有可能被浏览器给拦截.为了解决这个问题,可以模拟链接被按下 ...

  9. C# winform调用浏览器打开页面方法分享,希望对大家有帮助

    在很多客户端程序中我们都需要调用浏览器打开网页,这里分享一个可以在我winform程序调用浏览器的方法,测试通过了. 声明:这个方法是上万个用户测试通过的,不是我没有测试通过就拿出来分享,那个是自己搬 ...

随机推荐

  1. 人不能同时在两个地方做猪(Scrum Team)

    在一个神奇的国度里生活着许多动物, 其中有猪, 鸡, 和鹦鹉. 它们每天搞头脑风暴, 琢磨如何创业, 最后鹦鹉提议它们合伙开一个早餐店: 具体分工如下: 猪: 提供猪肉, 做熏猪肉 (bacon) 鸡 ...

  2. eNSP模拟器路由器无法正常启动一直显示“#”——问题解决方法

    eNSP模拟器路由器无法正常启动一直显示“#” 问题项如截图: 解决方案: 1. 打开自己电脑的控制面板 -->> 系统和安全 -->> Windows Defender防火墙 ...

  3. Leetcode867.Transpose Matrix转置矩阵

    给定一个矩阵 A, 返回 A 的转置矩阵. 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引. 示例 1: 输入:[[1,2,3],[4,5,6],[7,8,9]] 输出:[[1,4,7] ...

  4. Leetcode849.Maximize Distance to Closest Person到最近的人的最大距离

    在一排座位( seats)中,1 代表有人坐在座位上,0 代表座位上是空的. 至少有一个空座位,且至少有一人坐在座位上. 亚历克斯希望坐在一个能够使他与离他最近的人之间的距离达到最大化的座位上. 返回 ...

  5. python深、浅拷贝

    1.首先对于数字和字符串而言,深浅拷贝无实际意义,两者同时指向同一个内存地址. a = 123 print(id(a)) b = a print(id(b)) 495849744 495849744 ...

  6. DTcms设置 IIS6.0设置url重写导致editor上传全部失效

    1.修改iis的重写规则为htm 2.修改后台后缀为htm 解决

  7. 列表list和元祖tuple

    list和tuple list列表: Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: ...

  8. poj3422 最小费用流

    一遍的话秩序要dp就好,但是这里要删去点.此题可以转化为最小费用流.开始我想了半天纠结怎么处理到过一次后值变0,看了书之后发现拆点解决了这个问题. 对于点t,拆为t-->t',容量为1,费用为负 ...

  9. python系列之(5)PyMySQL的使用

    简介 PyMySQL是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中是使用mysqldb. 安装 pip3 install pymysql 创建连接 #!/usr ...

  10. python ASCII编码集