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

  1. (function(){
  2. /*
  3. * 使用方法:
  4. * 一、引入ua.js
  5. * 二、直接调用 MobilePort 对象的属性与方法。
  6. *
  7. * MobilePort 对象
  8. * 属性:MobilePort.back;// 数组 内容如下
  9. * 方法:MobilePort.androidBrowser(callBack) 安卓浏览器 //callBack 回调只有在安卓浏览器下执行
  10. * 方法:MobilePort.iosBrowser(callBack) ios浏览器 // 下面全部类似
  11. * 方法:MobilePort.qqBrowser(callBack) QQ浏览器
  12. * 方法:MobilePort.ucBrowser(callBack) uc浏览器
  13. * 方法:MobilePort.wxBrowser(callBack) 微信浏览器
  14. * 方法:MobilePort.pc(callBack) pc浏览器
  15. * 方法:MobilePort.move(callBack) 移动浏览器
  16. * 方法:MobilePort.androidApp(callBack, parameter) 安卓APP
  17. * 方法:MobilePort.iosApp(callBack, parameter) IOS app
  18. *
  19. * callBack 是回调函数,在指定环境下执行的函数。
  20. * parameter 是url上的参数,用于识别APP与Browser(必须),字符串。
  21. * 例如 www.baidu.com?from=app parameter 指 from=app
  22. * from=app 是前后端约定好的指代 App请求的网页。
  23. *
  24. * back数组中可能的值:内核、浏览器、移动端平台、pc端平台 、其他
  25. * webkit Trident Presto Gecko //内核 webkit内核 Trident内核 Presto内核 Gecko内核
  26. * IE chrome firefox opera safari //浏览器 IE浏览器 chrome浏览器 firefox浏览器 opera浏览器 safari浏览器
  27. * UCBrowser MQQBrowser //浏览器 UC浏览器 QQ浏览器
  28. * android ipad iphone //移动端平台 android平台 ipad平台 iphone平台
  29. * Mac windows Linux //pc端平台 Mac平台 windows平台 Linux平台
  30. * move wx //其他 move移动端平台 wx微信浏览器
  31. */
  1. /*
  2. * 正则赋值 内核
  3. */
  4. // webkit 内核
  5. var webkit = /webkit/i;
  6. //IE内核
  7. var Trident = /Trident/i;
  8. //opera内核
  9. var Presto = /Presto/i;
  10. //火狐内核
  11. var Gecko = /Gecko/i;
  12. /*
  13. * 正则赋值 浏览器
  14. */
  15. // chrome 浏览器
  16. var chrome1 = /chrome\/(\d+\.\d+)/i;
  17. // firefox 浏览器
  18. var firefox = /firefox\/(\d+\.\d+)/i;
  19. // opera 浏览器
  20. var opera = /opera(\/| )(\d+(\.\d+)?)(.+?(version\/(\d+(\.\d+)?)))?/i;
  21. // safari 浏览器
  22. var safari = /(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i;
  23. // IE 浏览器
  24. var IE = /msie (\d+\.\d+)/i;
  25. // UC 浏览器
  26. var UCBrowser = /UCBrowser/i;
  27. //QQ浏览器
  28. var MQQBrowser = /MQQBrowser/i;
  29. /*
  30. * 正则赋值 pc端
  31. */
  32. // macintosh 系统
  33. var Mac = /macintosh/i;
  34. // windows 平台
  35. var windows = /windows/i;
  36. // Linux 平台
  37. var Linux = /Linux/i;
  38. /*
  39. * 正则赋值 移动端
  40. */
  41. // android 系统
  42. var android = /android/i;
  43. // ipad 系统
  44. var ipad = /ipad/i;
  45. // iphone 系统
  46. var iphone = /iphone/i;
  47. /*
  48. * 正则赋值 其他
  49. */
  50. // 移动终端
  51. var move =
  52. /(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;
  53. // 微信打开
  54. var wx = /MicroMessenger/i;
  55. var back = [];
  56. var ua = navigator.userAgent;
  57. //内核判断
  58. if (webkit.test(ua)) { //webkit
  59. back.push("webkit");
  60. };
  61. if (Trident.test(ua)) { //IE
  62. back.push("Trident");
  63. };
  64. if (Presto.test(ua)) { //欧朋
  65. back.push("Presto");
  66. };
  67. if (Gecko.test(ua)) { //火狐
  68. back.push("Gecko");
  69. };
  70. //浏览器 判断
  71. if (IE.test(ua)) {
  72. back.push("IE");
  73. };
  74. if (chrome1.test(ua)) {
  75. back.push("chrome");
  76. };
  77. if (firefox.test(ua)) {
  78. back.push("firefox");
  79. };
  80. if (opera.test(ua)) {
  81. back.push("opera");
  82. };
  83. if (safari.test(ua)) {
  84. back.push("safari");
  85. };
  86. if (UCBrowser.test(ua)) {
  87. back.push("UCBrowser");
  88. };
  89. if (MQQBrowser.test(ua)) {
  90. back.push("MQQBrowser");
  91. };
  92. //pc 平台判断
  93. if (Mac.test(ua)) {
  94. back.push("Mac");
  95. };
  96. if (windows.test(ua)) {
  97. back.push("windows");
  98. };
  99. if (Linux.test(ua)) {
  100. back.push("Linux");
  101. };
  102. //移动平台 判断
  103. if (android.test(ua)) {
  104. back.push("android");
  105. };
  106. if (ipad.test(ua)) {
  107. back.push("ipad");
  108. };
  109. if (iphone.test(ua)) {
  110. back.push("iphone");
  111. };
  112. //其他
  113. if (move.test(ua)) {
  114. back.push("move");
  115. };
  116. if (wx.test(ua)) {
  117. back.push("wx");
  118. };
  119. MobilePort = {};
  120. //back 包含所有信息
  121. MobilePort.back = back;
  122. //android 浏览器
  123. MobilePort.androidBrowser = function (callBack) {
  124. if (android.test(ua)) {
  125. callBack();
  126. } else {
  127. return "error";
  128. }
  129. };
  130. //ios 浏览器
  131. MobilePort.iosBrowser = function (callBack) {
  132. if (ipad.test(ua) || iphone.test(ua)) {
  133. callBack();
  134. } else {
  135. return "error";
  136. }
  137. };
  138. // QQ 浏览器
  139. MobilePort.qqBrowser = function (callBack) {
  140. if (MQQBrowser.test(ua)) {
  141. callBack();
  142. } else {
  143. return "error";
  144. }
  145. };
  146. // UC 浏览器
  147. MobilePort.ucBrowser = function (callBack) {
  148. if (UCBrowser.test(ua)) {
  149. callBack();
  150. } else {
  151. return "error";
  152. }
  153. };
  154. // 微信打开
  155. MobilePort.wxBrowser = function (callBack) {
  156. if (wx.test(ua)) {
  157. callBack();
  158. } else {
  159. return "error";
  160. }
  161. };
  162. // androidApp
  163. MobilePort.androidApp = function (callBack, parameter) {
  164. var oUrl = location.search;
  165. var tc = new RegExp(parameter);
  166. if (android.test(ua) && tc.test(oUrl)) {
  167. callBack();
  168. } else {
  169. return "error";
  170. }
  171. };
  172. //iosApp
  173. MobilePort.iosApp = function (callBack, parameter) {
  174. var oUrl = location.search;
  175. var tc = new RegExp(parameter);
  176. if ((ipad.test(ua) || iphone.test(ua)) && tc.test(oUrl)) {
  177. callBack();
  178. } else {
  179. return "error";
  180. }
  181. };
  182. // pc 平台
  183. MobilePort.pc = function (callBack) {
  184. if (Linux.test(ua) || windows.test(ua) || Mac.test(ua)) {
  185. callBack();
  186. } else {
  187. return "error";
  188. }
  189. }
  190. //移动平台
  191. MobilePort.move = function (callBack) {
  192. if (move.test(ua)) {
  193. callBack();
  194. } else {
  195. return "error";
  196. }
  197. }
  198. })();
时间: 2024-10-11 04:00:17

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

js判断当前页面在移动设备还是在PC端中打开

js判断用户的浏览设备是移动设备还是PC <script type="text/javascript"> function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUserAgent.match(/ipad/i) == "ipad"; var bIsIphoneOs = sUserAgent.match(/iphone o

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

1.使用jq判断是否用微信浏览器打开页面 var is_weixin = (function(){return navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1})(); if(is_weixin){ return true; }else{ return false; } 2.使用es6判断是否用微信浏览器打开页面 let isWeiXin = () => { return navigator.userAgent

判断当前页面离开后处理数据

做一个项目,涉及到记录下当前页面的鼠标坐标,并发送给后台. 有两个步骤,一步是记录下鼠标坐标并发送后台,二步是当鼠标离开页面时停止发送数据. 记录下鼠标坐标并发送的代码,如下: // 用sta字符串记录下鼠标的坐标 var sta = ''; function changeXY(){ $(window).bind('mousemove',function(e){ var x = e.pageX; var y = e.pageY; sta += '(' + x +':' + y + '),'; }

点击微信防封短链接强制使用浏览器打开页面的遮罩层最新实现方案!

相信在微信中做推广的朋友一定都遇到这种情况的.当你需要在微信中推广的时候会发现,自己的网页被微信屏蔽了,还有就是说APP的下载链接在微信中点击是无法下载的.必须要手动点击,右上角的三个点,然后选择在浏览器中打开,才可以顺利完成! 虽然说这个对于我们比较了解微信的朋友来说是很简单,很轻松的!但是使用微信的百分之九十都是小白,他们是不知道有这部操作的. 今天要加的是一个终极解决方法:强制使用浏览器打开页面的遮罩层. 再也不用管微信如何的更新,直接判断微信的UA,然后弹出一个遮罩提示用户在浏览器中打开

JS通过设置cookie来控制弹出层,首次打开页面显示弹出层

<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.jb51.net/" /> <title>JS通过设置cookie来控制弹出层,首次打开页面显示弹出层,刷新页面不再显示:关闭浏览器重新打开.清除缓存cookie显示.</title&

Python学习打开页面,关闭浏览器

通过Python的打开页面和关闭浏览器,实现对页面阅读次数的增加. 有些博客页面的阅读次数,只是简单的通过打开页面来计数的,如果是这样我们就可以通过Python进行刷阅读次数. #-*- coding: utf-8 -*- # refresh blog # 刷新博客阅读次数 # 使用打开页面,关闭浏览器的原理 # 打开10次,关闭一次浏览器 import webbrowser as web import time import os url = 'http://8796902.blog.51ct

360浏览器兼容模式打开页面错误

今天发布系统之后,客户发现问题说360和傲游都打不开右下角提示的页面而IE8可以打开,右下角图:返回404错误.我回到座位上打开系统看了下,确实如此.我仔细想了下,我平时自己开发模式下就可以,但是为啥发布了就不行了.我仔细看了下我360浏览器.原来我用的都是极速模式,webkit内核.立马切换到兼容模式下,果然挂了.让我郁闷了..话说兼容模式下用的ie内核.自己本机怎么也装的ie8,咋就不行了呢. 我打开前端代码发现有这么一句话:parent.document.getElementById("m

打开页面div滚动条定位(别用锚点)

来啦!客官久等了!!!!! 上代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>打开页面div滚动条定位</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <s

浏览器对新窗口打开页面的阻止情况

事情是这样的:我们后台人员有一个需求,希望在ajax请求成功后的回调函数里,新窗口打开一个页面.示例代码如下: $("#btn").on("click",function(){ $.ajax({ url : "opendata.html", type : "post", data : {"a" : 1}, success : function(){ window.open("http://www.