文档章节

JS判断访问设备(userAgent)加载不同页面

华山猛男
 华山猛男
发布于 2014/03/27 17:55
字数 530
阅读 61
收藏 1

判断当前访问网站的设备是否是PC

//平台、设备和操作系统
        var system ={
        win : false,
        mac : false,
        xll : false
        };
        //检测平台
        var p = navigator.platform;
        system.win = p.indexOf("Win") == 0;
        system.mac = p.indexOf("Mac") == 0;
        system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);
        //跳转语句
        if(system.win||system.mac||system.xll){
            alert("PC访问");
        }else{
            alert("非PC访问");
        }

JS判断访问设备(userAgent)加载不同页面。代码如下:

function browserRedirect() {
    var sUserAgent = navigator.userAgent.toLowerCase();
    var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
    var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
    var bIsMidp = sUserAgent.match(/midp/i) == "midp";
    var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
    var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
    var bIsAndroid = sUserAgent.match(/android/i) == "android";
    var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
    var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
    if (! (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM)) {
        window.location.href = B页面;
    }
}
browserRedirect();

JS判断客户端操作系统类型(platform)来定义不同的字体表现。代码如下:

// 更详细的探测当前客户端使用的操作系统
function detectOS() {
 var sUserAgent = navigator.userAgent;
 var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
 var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel");          if (isMac) 
 return "Mac";
var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
if (isUnix) return "Unix";
var isLinux = (String(navigator.platform).indexOf("Linux") > -1);
if (isLinux) return "Linux";
if (isWin) {
var isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1;
if (isWin2K) return "Win2000";
var isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1;
if (isWinXP) return "WinXP";
var isWin2003 = sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1;
if (isWin2003) return "Win2003";
var isWin2003 = sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1;
if (isWin2003) return "WinVista"; 
var isWin2003 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1;
if (isWin2003) return "Win7";
} 
return "other"; 
}

在WIN7系统下和XP系统下的宋体显示是不一样的、有的时候容易撑破格子 

而且WIN7下面微软雅黑是系统自带的、效果很好! 

以下的代码可以方便我们判断不同的系统在使用不同系统里自带效果好的字体!或者其它一些东西! 

调用办法

<script>document.write(detectOS());</script>

各系统下最佳字体

Win7 and Vista

"Microsoft Yahei",Tahoma
XP

Tahoma, Helvetica, Arial, 'SimSun', sans-serif
MAC

"Helvetica Neue",Helvetica,"Hiragino Sans GB",Arial

淘宝上用的通用的系统字体
Tahoma, Helvetica, Arial, 'Microsoft Yahei', sans-serif

本文转载自:http://www.camnpr.com/archives/js-judge-device-and-os.html

共有 人打赏支持
华山猛男
粉丝 10
博文 176
码字总数 84532
作品 0
海口
程序员
私信 提问
手机版网站起码要实现一些基本的功能

手机版网站起码要实现一些基本的功能吧: 1.页面的适用性问题。对于移动终端,有不一样的分辨率与屏幕尺寸,如果还像电脑端的设计还限制网页的宽度为1003px或其他像素值,字体大小 还用12px或...

roockee
2014/04/03
0
0
这个问题灰常重要哇,走过路过的都给点建议哇。

我们现在做的网站需要适配手机,bootstrap没有用好,用的不伦不类的,毕竟是处女作啊,手机访问网页时,页面乱的一笔啊!有没有好的解决方法啊?顺便问下,有没有较好的判断移动端访问的js库...

请叫我赵小宝
2015/03/28
208
1
如何提升网站在移动端的打开速度(转)

原文来自:http://www.studyofnet.com/news/173.html 本文导读:“移动网络”是个非常模糊的概念, 2g 3g wifi都是移动网络,但是网络特性以及对应的优化方法还是有些区别的。 对于移动端而言...

巴顿
2014/11/28
0
6
响应式Web设计(四):响应式Web设计的优化

这篇文章主要说说在进行响应式Web设计的过程中,涉及到页面的一些需要进行优化的地方: 1、 轻量级的Javascript库: 针对PC端网页当然会首选jQuery来作为前端javascript库,但是针对移动端来...

幸福2胖纸
2013/05/06
0
23
微信浏览器中支付宝跳转被屏蔽

H5页面在微信浏览器中,点击支付宝付款时候,网页跳转被微信屏蔽...会暴露表单信息,只能长按此表单在别的浏览器中打开支付。 js可以获取浏览器的userAgent,请问是否可以通过js判断当是微信 ...

remielxf
2015/07/30
12.6K
13

没有更多内容

加载失败,请刷新页面

加载更多

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。

import java.util.Stack; public class Solution { public boolean IsPopOrder(int [] pushA,int [] popA) { if(pushA.length==0||popA.length==0) return false; Stack......

南桥北木
41分钟前
1
0
互联网浪潮下,Java程序员如何追赶技术革新的脚步?

一:时代背景 身处互联网行业的我们一直处在变革的最前端,受到行业发展浪潮的洗礼,不停歇地追赶着技术革新的脚步。特别是近几年来, 互联网架构不断演化,经历了从集中式架构到分布式架构,...

老道士
48分钟前
1
0
flink系列(9)-flink启动流程分析

连续写了几天的flink StreamGraph的代码,今天闲来说一下flink的启动

yiduwangkai
今天
1
0
取变量的地址赋值给另一个变量,C通过,C++编译出错

取变量的地址赋值给另一个变量,C通过。正常运行,C++编译出错。 代码如下: #include <stdio.h>int main(int argc, char *argv[]){int x = 3;int *p = &x;int y = p;/*c ...

SamXIAO
今天
1
0
利用隐写术实施攻击

尽管隐写术是一种低频攻击途径,但网络犯罪分子已经开始利用它结合社交媒体的普遍性和快速传播性来传递恶意有效负载。 低调但有效的隐写技术虽然是旧把戏,但将代码隐藏在看似正常的图像中,...

Linux就该这么学
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部