JavaScript-navigator_userAgent-编写一段代码能够区分浏览器的主流和区分
1 userAgent:包含浏览器名称和版本号的字符串
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
//编写一段代码能够区分浏览器的主流和区分
document.write("<h1>"+navigator.userAgent+"</h1>");
var browser="unknown";
var ua=navigator.userAgent;
//如果ua中包含MSIE
if(ua.indexOf("MSIE")!=-1){
browser="IE";//browser赋值为"IE";
}else if(ua.indexOf("Firefox")!=-1){//否则,如果ua中包含Firefox
browser="Firefox"; //browser赋值为:Firefox
}
else if(ua.indexOf("OPR")!=-1){//否则,如果ua中包含OPR
browser="Opera"; //browser赋值为:"Opera"
}
else if(ua.indexOf("Chrome")!=-1){//否则,如果如果ua中包含Chrome
browser="Chrome"; //browser赋值为"Chrome"
}
else if(ua.indexOf("Safari")!=-1){ //否则,如果ua中包含Safari
browser="Safari";//browser赋值为"Safari"
}
else if(ua.indexOf("Trident")!=-1){//否则,如果ua中包含Trident
browser="IE";//browser赋值为"IE"
} document.write("<h1>浏览器名称:"+browser+"</h1>"); var version="unknown";
//如果browser不是"unknown"
if(browser!="unknown"){
if(browser=="Opera"){//如果browser是Opera
//在ua中查找OPR的位置,+3+1,保存在i中
var i=ua.indexOf("OPR")+3+1;
//截取ua中i位置之后的3位,转为浮点数保存在version中
version=parseFloat(ua.slice(i,i+3));
//否则,如果browser是"IE",且ua中找不到“MSIE”
}else if(browser=="IE"&&ua.indexOf("MSIE")==-1){
//将version改为"11"
version="11";
}else{//否则
//在ua中查找browser的位置,+browser的字符个数+1,保存在i中
var i=ua.indexOf(browser)+browser.length+1;
//选取ua中i位置之后的3位,转为浮点数保存在version中
version=parseFloat(ua.slice(i,i+3)); }
}
document.write("<h1>版本号:"+version+"</h1>")
</script>
</body>
</html>
JavaScript-navigator_userAgent-编写一段代码能够区分浏览器的主流和区分的更多相关文章
- (第一章)改善JavaScript,编写高质量代码。
根据<编写高质量代码改善JavaScript程序的188个建议>这本书,来记录我目前所了解的建议方式. 建议1:警惕Unicode乱码 根据ECMA标准规定JavaScript语言可以使用 ...
- 如何用Java编写一段代码引发内存泄露
本文来自StackOverflow问答网站的一个热门讨论:如何用Java编写一段会发生内存泄露的代码. Q:刚才我参加了面试,面试官问我如何写出会发生内存泄露的Java代码.这个问题我一点思路都没有, ...
- (第二章)改善JavaScript,编写高质量代码。
建议34:字符串是非值操作 var a = "javascript"; var b = a; b = b.toUpperCase(); alert(a); //javascript ...
- 怎样用Java编写一段代码引发内存泄露
通过下面步骤能够非常easy产生内存泄露(程序代码不能訪问到某些对象,可是它们仍然保存在内存中): 应用程序创建一个长时间执行的线程(或者使用线程池,会更快地发生内存泄露). 线程通过某个类载入器(能 ...
- 编写一段代码,打印一个M行N列的二维数组转置。(交换行和列)
import edu.princeton.cs.algs4.*; public class No_1_1_13 { public static void main(String[] args) { i ...
- 兼容最新firefox、chrome和IE的javascript图片预览实现代码
这篇文章主要介绍了兼容最新firefox.chrome和IE的javascript图片预览实现代码,测试了浏览器firefox6.firefox12.chrome 25.0.1364.172 m.IE ...
- 编写高质量代码改善C#程序的157个建议——建议87:区分WPF和WinForm的线程模型
建议87:区分WPF和WinForm的线程模型 WPF和WinForm窗体应用程序都有一个要求,那就是UI元素(如Button.TextBox等)必须由创建它的那个线程进行更新.WinForm在这方面 ...
- javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数
javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数 function test(){ var bt = document.getElementById(" ...
- 编写高质量代码改善程序的157个建议:第87个建议之区分WPF和WinForm的线程模型
今天有时间了,继续<编写高质量代码改善程序的157个建议>的阅读,当我阅读到建议87的时候,里面的一些代码示例和文中所说的不一致了,是不是我现在用的是NetFramework 4.0的缘故 ...
随机推荐
- alhpa阶段回顾
说明:本次课程,大家按照我下面列出来的问题进行回顾和反思,总结alhpa阶段以来的得失.每个组都要回答这些问题.由组长或者组员来回答都可以.目的依然是让大家养成软工的一些习惯和思维方式. 1.最初的需 ...
- $.grep(array, callback, [invert])过滤,常用
$.grep(array, callback, [invert])过滤,常用 解释: 使用过滤函数过滤数组元素.此函数至少传递两个参数(第三个参数为true或false,对过滤函数返回值取反,个人觉得 ...
- privoxy代理google浏览器访问缓慢
取消--no-daemon <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PU ...
- Devexpress WidgetView 使用总结
效果图: 1.添加DocumentManager控件 2.Convert to WidgetView 3.添加Document,设定ControlTypeName属性,第5步用到 4.添加StackG ...
- 郑捷《机器学习算法原理与编程实践》学习笔记(第四章 推荐系统原理)(二)kmeans
(上接第二章) 4.3.1 KMeans 算法流程 算法的过程如下: (1)从N个数据文档随机选取K个文档作为质心 (2)对剩余的每个文档测量其到每个质心的距离,并把它归到最近的质心的类 (3)重新计 ...
- thinkphp model模块
1.获取系统常量信息的方法:在控制器DengLuController里面下写入下面的方法,然后调用该方法. public function test() { //echo "这是测试的&qu ...
- oracle生成单据号
--创建单据号存放表 CREATE TABLE BU_TAB( DOC_NUM NUMBER --生成的单据号 ); --单据号 create table cux_doc_num( tab ), -- ...
- NAT技术
该文摘自百度百科"NAT"中的一部分 NAT(Network Address Translation,网络地址转换)是1994年提出的.当在专用网内部的一些主机本来已经分配到了本地 ...
- With语句以及@contextmanager的语法解析
with 语句以及@contextmanager的语法解析 with语句可以通过很简单的方式来替try/finally语句. with语句中EXPR部分必须是一个包含__enter__()和__e ...
- intel显卡笔记本恢复屏幕亮度调整功能
更新Intel显卡驱动后不能修改屏幕亮度,可以在注册表里面搜索featuretestcontrol,将f000修改为ffff,重启后就可以通过Fn+F4/F5调整屏幕亮度了. 注:此方法适用于带有in ...