这是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. 微信小程序制作选项卡

    wxml: <view class="tab"><view class="tab-title" bindtap="tabFun&qu ...

  2. 打印begin~end

    要求: 输入:begin和end 输出:依次打印出begin到end import java.util.Scanner; //递归打印begin —— end public class demo1 { ...

  3. IE下的双外边距浮动bug

    最常见且最容易发现的额一个bug是IE 6和最低版本中的双外边距浮动bug.这个bug是任何浮动元素上的外边距加倍. 上面代码中,div盒子向左边浮动,设置的margin-left的值是10px.在c ...

  4. RGBA(0,0,0,0)调色

    前三个值(红绿蓝)的范围为0到255之间的整数或者0%到100%之间的百分数.这些值描述了红绿蓝三原色在预期色彩中的量. 第四个值,alpha值,制定了色彩的透明度/不透明度,它的范围为0.0到1.0 ...

  5. 安装tomcat(fedora16)

    sudo yum install tomcat6 sudo yum install tomcat6-webapps sudo yum install tomcat6-admin-webapps   s ...

  6. 【数论】不定方程&逆元&中国剩余定理

    一.不定方程 要求逆元,首先要知道什么是不定方程. 已知a,b,c,求解x,y,形如ax + by = c 的方程就是不定方程. 不定方程有两种解的情况: 1.无解 2.存在且有无限的解 那么,如何判 ...

  7. 【水滴石穿】react-native-template-app

    这个也是一个基础项目 地址如下https://github.com/ndlonghi/react-native-template-app 点击登陆跳转到首页 分析代码如 react-native-te ...

  8. JavaScript--模拟百度搜索下拉li

    上效果: 主要思路: 函数indexOf() .join().innerHTML的使用,还有 用完的数组要清空 <!DOCTYPE html> <html> <head ...

  9. SpingMVC ModelAndView, Model,Control以及参数传递总结

    1.web.xml 配置: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <servlet>     <servlet-name>dispatcher& ...

  10. tyvj1467 通向聚会的道路

    背景   Candy住在一个被划分为n个区域的神奇小镇中,其中Candy的家在编号为n的区域,Candy生日这天,大家都急急忙忙赶去Candy家庆祝Candy的生日. 描述   Candy共有t个朋友 ...