/*!
* UA检测及跳转
*/
;(function(){
var whatdevice = {};
var myUA = window.navigator.userAgent.toLowerCase();
//正则得小写

/*
* 是否移动设备:返回Boolean。
*/
whatdevice.isMobile = /(?:micromessenger|mobile|iphone|ipod|android|coolpad|mmp|smartphone|midp|wap|xoom|symbian|j2me|blackberry|windows phone|win ce)/.test(myUA);

/*
* 跳转到手机网站:参数1是手机网站网址。
* 使用方法:whatdevice.go2mob('手机网站网址') 若不想跳转,当前访问的URL传递参数itsme=1,如http://www.hiry.cn/网站?itsme=1
*/
whatdevice.go2mob = function(){
var mobUrl = arguments[0]; //参数1
var myArg = [];
myArg = window.location.search.substr(1).match(/(^|&)itsme=([^&]*)(&|$)/i); //获取URL参数itsme
var itsme = (myArg != null && myArg[2] != null)?myArg[2]:0;
if(itsme != 1 && mobUrl != null && whatdevice.isMobile){
window.location.href = mobUrl;
}
};

/*
* 跳转到电脑网站:参数1是电脑网站网址。
* 使用方法:whatdevice.go2web('电脑网站网址') 若不想跳转,当前访问的URL传递参数itsme=1,如m.b5f.cn/?itsme=1
*/
whatdevice.go2web = function(){
var webUrl = arguments[0]; //参数1
var myArg = [];
myArg = window.location.search.substr(1).match(/(^|&)itsme=([^&]*)(&|$)/i); //获取URL参数itsme
var itsme = (myArg != null && myArg[2] != null)?myArg[2]:0;
if(itsme != 1 && webUrl != null && !whatdevice.isMobile){
window.location.href = webUrl;
}
};

/*
* 是否苹果手机:返回Boolean。
*/
whatdevice.isiOS = /(?:iphone)/.test(myUA);

/*
* 是否安卓手机:返回Boolean。
*/
whatdevice.isAndroid = /(?:android)/.test(myUA);

/*
* 是否微信浏览器:返回Boolean。
*/
whatdevice.isWechat = /(?:micromessenger)/.test(myUA);

/*
* 是否微信小程序:返回Boolean。
*/
whatdevice.isMiniProgram = window.__wxjs_environment === 'miniprogram';

/*注册全局变量*/
window.whatdevice = whatdevice;
})();

网站访问者UA检测及跳转的更多相关文章

  1. php或js判断网站访问者来自手机或者pc

    php或js判断网站访问者来自手机或者pc机 2013年9月26日,在弄wtuonline的时候为了区分用户是来自手机版浏览器还是pc,针对不同平台选择不同的网站版本,最终总结如下:         ...

  2. php或js判断网站访问者来自手机或者pc机

    php或js判断网站访问者来自手机或者pc机 2013年9月26日,在弄wtuonline的时候为了区分用户是来自手机版浏览器还是pc,针对不同平台选择不同的网站版本,最终总结如下:         ...

  3. 一种基于自定义代码的asp.net网站首页根据IP自动跳转指定页面的方法!

    一种基于自定义代码的asp.net网站首页根据IP自动跳转指定页面的方法! 对于大中型网站,为了增强用户体验,往往需要根据不同城市站点的用户推送或展现相应个性化的内容,如对于一些大型门户网站的新闻会有 ...

  4. 网站WAF的检测

    [wafw00f]: 项目地址: https://github.com/sandrogauci/wafw00f WAFW00F是识别和指纹Web应用防火墙(WAF)产品,其工作原理是首先通过发送一个正 ...

  5. JS版本网站资源状态检测

    Title:JS版本网站资源状态检测  --2012-08-28 14:08 前几天需要一个网站状态检测的东东,后面写了个蹩脚的JS版本,里面用到了以前没用过的东西,在这里记下来,其实批处理加curl ...

  6. YUI的UA检测

    YUI.UA是针对javascript的宿主环境检测的一个检测对象,返回的是一系统关于当前宿主的信息 1.对象相关信息列表及userAgent 检测对象o = { ie: 0, //ie Mozill ...

  7. 【转载】网站配置Https证书系列(三):IIS网站设置Http链接直接跳转Https安全连接

    Http链接请求是以明文的方式传输,在传输的过程中很容易被篡改数据,一个典型的例子就是运营商的网络劫持注入广告信息等,而Https请求则是安全加密的请求,报文数据以密文的形式进行传输.当IIS网站配置 ...

  8. 根据浏览器UA信息进行跳转(移动和pc)

    如何用php判断一个客户端是手机还是电脑?其实很简单,开发人员都知道,通过浏览器访问网站时,浏览器都会向服务器发送UA,即User Agent(用户代理).不同浏览器.同一浏览器的不同版本.手机浏览器 ...

  9. php或js判断网站访问者来自手机或者pc端源码

    很多时候也可以通过逻辑程序来进行判断,如PHP.JS是常用的两种识别访问设备类型的常用方法. 原理都是采用识别访问客户端的HTTP_USER_AGENT,然后进行关键字匹配进行确定设备类型,对于伪造H ...

随机推荐

  1. beginner_json_setting

  2. Archlinux下vmware-workstation中安装rhel5并通过桥接模式(bridge)上网

    首先安装vmware-workstation(从aur中) $yaourt vmware-workstation 安装linux-headers $pacman -S linux-headers 然后 ...

  3. 转载:Bootstrap 源码解析

    Bootstrap 源码解析 前言 Bootstrap 是个CSS库,简单,高效.很多都可以忘记了再去网站查.但是有一些核心的东西需要弄懂.个人认为弄懂了这些应该就算是会了.源码看一波. 栅格系统 所 ...

  4. electron 项目的搭建方式,借助 node 和 npm

    1,首先确定安装了 node 和 npm 2,创建一个文件夹,如 aa 3,CMD 命令进入到 aa,用 npm 命令初始化一个项目 4, npm -init 根据提示完成配置 5,安装 electr ...

  5. MD5类(MD5Helper)

    项目中经常需要使用到MD5来进行加密 代码: namespace MyProject.Common { public class MD5Helper { /// <summary> /// ...

  6. 用Redis实现分布式锁 与 实现任务队列

    这一次总结和分享用Redis实现分布式锁 与 实现任务队列 这两大强大的功能.先扯点个人观点,之前我看了一篇博文说博客园的文章大部分都是分享代码,博文里强调说分享思路比分享代码更重要(貌似大概是这个意 ...

  7. Netty socket.io 启用Epoll 模式异常

    Epoll 环境为Linux 内核2.6 以上版本  Windows下不能启动 1:判断Linux环境 public static boolean isOSLinux() { Properties p ...

  8. Linux系统基础5周入门精讲(Linux发展过程)

    什么是操作系统 作为应用开发程序员,我们开发的软件都是应用软件,而应用软件必须运行于操作系统之上,操作系统则运行于硬件之上,应用软件是无法直接操作硬件的,应用软件对硬件的操作必须调用操作系统的接口,由 ...

  9. SpringBoot配置发送邮件

    一.导入jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g ...

  10. leetcode解题报告 32. Longest Valid Parentheses 动态规划DP解

    dp[i]表示以s[i]结尾的完全匹配的最大字符串的长度. dp[] = ; ; 开始递推 s[i] = ')' 的情况 先想到了两种情况: 1.s[i-1] = '(' 相邻匹配 这种情况下,dp ...