页面系统,浏览器检测- 网页基础模块(JavaScript)
// 浏览器检测,获取,弹出框提醒IE 返回浏览器详情
function GetbrowserSys()
{
var BrowserMatch = {
init: function() {
this.browser = this.getBrowser().browser || "An Unknown Browser";
this.version = this.getBrowser().version || "An Unknown Version";
this.OS = this.getOS() || "An Unknown OS";
},
getOS: function() {
if (navigator.platform.indexOf("Win") != -1) return "Windows";
if (navigator.platform.indexOf("Mac") != -1) return "Mac";
if (navigator.platform.indexOf("Linux") != -1) return "Linux";
if (navigator.userAgent.indexOf("iPhone") != -1) return "iPhone/iPod";
},
getBrowser: function() {
var browser="Unknown Browse";
var version=0;
var rMsie = /(msie\s|trident\/7)([\w\.]+)/;
var rTrident = /(trident)\/([\w.]+)/;
var rFirefox = /(firefox)\/([\w.]+)/;
var rOpera = /(opera).+version\/([\w.]+)/;
var rNewOpera = /(opr)\/(.+)/;
var rChrome = /(chrome)\/([\w.]+)/;
var rSafari = /version\/([\w.]+).*(safari)/;
var ua = navigator.userAgent.toLowerCase();
var matchBS, matchBS2;
matchBS = rMsie.exec(ua);
if (matchBS != null) {
matchBS2 = rTrident.exec(ua);
if (matchBS2 != null) {
switch (matchBS2[2]) {
case "4.0":
return {
browser:
"IE",
version: "8"
};
break;
case "5.0":
return {
browser:
"IE",
version: "9"
};
break;
case "6.0":
return {
browser:
"IE",
version: "10"
};
break;
case "7.0":
return {
browser:
"IE",
version: "11"
};
break;
default:
return {
browser:
"IE",
version: "Undefined"
};
}
} else {
return {
browser: "IE",
version: matchBS[2] || "0"
};
}
}
matchBS = rFirefox.exec(ua);
if ((matchBS != null) && (!(window.attachEvent)) && (!(window.chrome)) && (!(window.opera))) {
return {
browser: matchBS[1] || "",
version: matchBS[2] || "0"
};
}
matchBS = rOpera.exec(ua);
if ((matchBS != null) && (!(window.attachEvent))) {
return {
browser: matchBS[1] || "",
version: matchBS[2] || "0"
};
}
matchBS = rChrome.exec(ua);
if ((matchBS != null) && ( !! (window.chrome)) && (!(window.attachEvent))) {
matchBS2 = rNewOpera.exec(ua);
if (matchBS2 == null) {
return {
browser: matchBS[1] || "",
version: matchBS[2] || "0"
};
} else {
return {
browser: "Opera",
version: matchBS2[2] || "0"
};
}
}
matchBS = rSafari.exec(ua);
if ((matchBS != null) && (!(window.attachEvent)) && (!(window.chrome)) && (!(window.opera))) {
return {
browser: matchBS[2] || "",
version: matchBS[1] || "0"
};
}
}
};
BrowserMatch.init();
// 获取浏览器名:BrowserMatch.browser;
// 获取浏览器版本:BrowserMatch.version;
// 获取所处操作系统:BrowserMatch.OS;
if (BrowserMatch.browser=="IE"&&BrowserMatch.version<9) {
alert("您当前浏览器为:"
+ BrowserMatch.browser
+"\nVersion:"
+ BrowserMatch.version+".0"
+ "\n所处操作系统为:"
+BrowserMatch.OS
+"\n你当前的浏览器不支持本网页大多功能, "
+"\n为了更好体验宝宝提供的服务,\n请点点你的小手手升级或换个更厉害的浏览器吧!"
);
}
return "您当前浏览器为:" + BrowserMatch.browser +"\nVersion:"+ BrowserMatch.version+".0" + "\n所处操作系统为:"+BrowserMatch.OS;
}
页面系统,浏览器检测- 网页基础模块(JavaScript)的更多相关文章
- 直接拨号、将电话号码传入拨号程序、调用拨号程序、调用系统浏览器浏览网页、调用系统程序查看联系人、显示系统设置界面和显示Wi-Fi设置界面代码
直接拨号.将电话号码传入拨号程序.调用拨号程序.调用系统浏览器浏览网页.调用系统程序查看联系人.显示系统设置界面和显示Wi-Fi设置界面代码 拨打号码的代码如下: Intent callIntent= ...
- 页面检测网络外网连接- 网页基础模块(JavaScript)
方法一 html 添加图片标签 加载外站图片 <img id="connect-test" style="display:none;" onload=&q ...
- (转)AppCan中调用系统浏览器打开网页
<!DOCTYPE html> <html> <head> <style>body{ background:#fff; font-size:30px;} ...
- 第一百一十二节,JavaScript浏览器检测
JavaScript浏览器检测 学习要点: 1.navigator对象 2.客户端检测 由于每个浏览器都具有自己独到的扩展,所以在开发阶段来判断浏览器是一个非常重要的步骤.虽然浏览器开发商在公共接口方 ...
- JQuery制作网页—— 第一章 JavaScript基础
1. JavaScript(弱类型语言):是一种描述性语言,也是一种基于对象(Object)和事件驱动(Event Driven)的,并具有安全性能的脚本语言. 特点:1.主要用来在HTML页面中添加 ...
- JavaScript(第十七天)【浏览器检测】
由于每个浏览器都具有自己独到的扩展,所以在开发阶段来判断浏览器是一个非常重要的步骤.虽然浏览器开发商在公共接口方面投入了很多精力,努力的去支持最常用的公共功能:但在现实中,浏览器之间的差异,以及不同浏 ...
- navigator.userAgent浏览器检测(前端基础系列)
对于前端来说,浏览器检测已经不陌生了,在做一些页面是,需要针对不同的浏览器进行处理不同的逻辑,最简单的就是区分pc和移动端的浏览器,或是android 和ios下的浏览器. 一.浏览器检测的由来? ...
- JavaScript浏览器检测之navigator 对象
一.使用客户端检测的原因 由于每个浏览器都具有自己独到的扩展,所以在开发阶段来判断浏览器是一个非常重要的步骤. 虽然浏览器开发商在公共接口方面投入了很多精力,努力的去支持最常用的公共功能: 但在现实中 ...
- 02- HTML网页基础知识与浏览器介绍
1.认识网页 网页主要由文字,图像和超链接等元素构成.当然,除了这些元素,网页还可以包含音频,视频,以及flask等. 如图所示就是一个网页: 网页是如何形成的呢? 它是由前端人员写的代码,经过浏览器 ...
随机推荐
- SQL中exsit和in
本周在做ETL的时候踩了个小坑 A表中数据有18条,有字段UserID B表与A表结构相同,但只有16条数据(手动删除2条,更改2条UserID为不重复的其他值) 当 Select UserID fr ...
- [js]设计模式小结&对原型的修改
js设计模式小结 工厂模式/构造函数--减少重复 - 创建对象有new - 自动创建obj,this赋值 - 无return 原型链模式 - 进一步去重 类是函数数据类型,每个函数都有prototyp ...
- linux 进程间通信——内存共享映射mmap和munmap
IPC三种通信机制是指:信号量.共享内存.消息队列, 信号量:通过操作系统中的PV操作来实现: 共享内存:申请一块内存,进程A往共享内存中写,其他的进程就可以通过读出共享内存中的内容来获取进程A所 ...
- 2.1 Html
一.Head中常用标签 <head>元素出现在文档的开头部分,会书写一些和浏览器中的配置信息. <head>与</head>之间的内容不会在浏览器的文档窗口显示,但 ...
- Python subprocess.Popen() error (No such file or directory)
这个错误很容易引起误解,一般人都会认为是命令执行了,但是命令找不到作为参数对应的文件或者目录.其实还有一层含义,就是这个命令找不到,命令找不到,也会报没有这个文件或者目录的错误. 为什么找不到这个命令 ...
- matlab之中文字体乱码处理
- NOIP2009(codevs1173)最优贸易
题目大意:给你一张有n个点m条边的有向图,每个点有一个权值,求一条1到n的路径,使得这条路径上存在两个点且他们的权值差最大. 思路:用dis[i]]记录从1到i的路径中所能得到两点间权值差的最大值,然 ...
- centos7安装redist 以及redis扩展
wget http://download.redis.io/releases/redis-3.2.1.tar.gz 用wget下载 $ tar xzf redis-3.2.1.tar.gz 解 ...
- Linux Shell自动交互/人机交互的三种方法
如果你要学习linux,你可能会遇到Linux Shell自动交互问题,这里将介绍Linux Shell自动交互的解决方法,在这里拿出来和大家分享一下. 一.背景 shell脚本在处理自动循环或大的任 ...
- RxJava 详解——简洁的异步操作(一)
随着越来越多的人开始提及 RxJava ,鉴于 RxJava 目前这种既火爆又神秘的现状,写下这篇文章来对 RxJava 做一个相对详细的.针对 Android 开发者的介绍. 这篇文章的目的有两个: ...