怎样判断当前用户使用什么内核的浏览器?

如何使用JS来判断浏览器类型(ie、firefox,等等)
现在网络上的浏览器,操作系统就象中国的方言一样,那个叫多啊!这给我们这些开发人员
带来了巨大的痛苦!大家的喜好不同,使用的系统也不同:有人喜欢用ie,有人喜欢用
firefox,还有人喜欢用腾讯tt,而我喜欢用maxthon。虽然名字可能有很多种,但是内核还是只有
那么的几种!ie内核,netscape内核!那么怎样使用js来判断各种浏览器的类型呢?在不同的浏览器中对js的支持程度,语法要求都不大一样!下面列举了对应的判断代码 :

<script language="JavaScript">
<!--
function getOs()
{
var OsObject = "";
if(navigator.userAgent.indexOf("MSIE")>0) {
return "MSIE";
}
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
return "Firefox";
}
if(isSafari=navigator.userAgent.indexOf("Safari")>0) {
return "Safari";
}
if(isCamino=navigator.userAgent.indexOf("Camino")>0){
return "Camino";
}
if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){
return "Gecko";
}

}
alert("您的浏览器类型为:"+getOs());
-->
</script>

测试一下,你就可以发现情况了。我使用的是maxthon,它告诉我的信息却是“msie”

所以说maxthon和ie使用的是同一个内核,而firefox则不是!

时间: 2024-10-11 20:26:27

怎样判断当前用户使用什么内核的浏览器?的相关文章

[原]openstack-networking-neutron(三)---用户态和内核态的区别

究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子: 1)例子 C代码 1.     void testfork(){   2.     if(0 = = fork()){   3.     printf(“create new process success!\n”);   4.     }   5.     printf(“testfork ok\n”)

用户空间和内核空间通讯之【proc文件系统】

今天我们介绍另一种用户内核空间通信的方法:proc文件系统. proc文件系统作为linux提供的一种虚拟文件系统并不占用实际外围存储空间,它仅存在于内存中,系统断电即消失.proc文件系统最开始的设计主要是为满足内核向用户态进程报告其状态而设计,并没有为输入做规定和说明.随着发展,现在的proc文件系统已经演变成一个"用户-内核"空间半双工的通信方式了(虽然目前已经开始有点混乱了,但某些早期开发的软件代码中还在继续使用这个文件系统).用户不但可以从proc文件系统中读取内核的相关状态

4-15 OS(线程,用户态,内核态,页) 数据库(原子性,日志) JAVA(I/O)

在internet services课上老师说到Capriccio 是用户模式下的thread library,OS课里第2个project也是实现一个用户模式下的线程库.之前用过POSIX库,我知道这是在内核模式里的线程库,那就表示由内核来创建.调度线程吧.但内核就像一个黑盒,一直不明白它做了什么,怎么做到的.Modern Operating System有章讲user space和kernel space控制线程. 在user space:所有线程的管理都在用户区,内核不知道多线程的存在.在

用户态和内核态

通常我们写程序时的关注重点都放在了实现功能,但如果将代码转换成CPU执行的指令时,那么我们所写的代码就是一个动态执行的CPU指令序列.而硬件设备对指令的执行有严格的控制,例如如下代码: void testfork(){ if(0 = = fork()){ printf(“create new process success!\n”); } printf(“testfork ok\n”); } 静态观察 从功能的角度来看: 就是实际执行了一个fork(),生成一个新的进程: 从逻辑的角度看:就是判

多线程之:用户态和内核态的区别

一:大话版用户态和内核态 (1)用户态和内核态的概念? --->内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序--->用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取 (2)为什么需要用户态和内核态? --->由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等级 :用

linux用户态和内核态切换理解

1. 用户态和内核态的概念区别 究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子: 1)例子 void testfork(){ if(0 = = fork()){ printf("create new process success!/n"); } printf("testfork ok/n"); } 这段代码很简单,从功能的

Linux用户态和内核态

究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子: 1)例子 C代码 ```1. void testfork() { 2. if(0 = = fork()) { 3. printf("create new process success!\n"); 4. } 5. printf("testfork ok\n"); 6. } 这

用户态与内核态详解

当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态).此时处理器处于特权级最高的(0级)内核代码中执行.当进程处于内核态时,执行的内核代码会使用当前进程的内核栈.每个进程都有自己的内核栈.当进程在执行用户自己的代码时,则称其处于用户运行态(用户态).即此时处理器在特权级最低的(3级)用户代码中运行.当正在执行用户程序而突然被中断程序中断时,此时用户程序也可以象征性地称为处于进程的内核态.因为中断处理程序将使用当前进程的内核栈.这与处于内核态的进程的状

linux系统用户态和内核态及其通信

究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子: 1)例子 C代码 1.     void testfork(){ 2.     if(0 = = fork()){ 3.     printf("create new process success!\n"); 4.     } 5.     printf("testfork ok\n