尤其是在当今各种浏览器满天飞(据说仅以ie为内核的浏览器就有200种之多)。
小弟今天写了个基于jquery的插件扩展,主要用于识别浏览器内核与外壳的类型和版本。可识别各种浏览器的内核,并已经支持多种国内主流浏览器。
费话不多说,上我的javascript代码:(文件名:jquery.browsertype-1.0.js)
复制代码 代码如下:
/**
* jquery插件开发方法二:第一步:插件定义
*/
jquery.myplugin = {
//获得浏览器的内核与外壳的类型和版本
client: function (){
//浏览器内核类型(只有五种)
var engine = { ie:0, webkit:0, gecko:0, opera:0, khtml:0 };
//浏览器外壳类型(国内常见的浏览器有:360浏览器、傲游、腾讯qq\tt浏览器、世界之窗、彗星浏览器、绿色浏览器、传统ie、谷歌chrome、网景netscape、火狐、opera、苹果safari等等)
var shell = { se360:0, se:0, maxthon:0, qq:0, tt:0, theworld:0, cometbrowser:0, greenbrowser:0, ie:0, chrome:0, netscape:0, firefox:0, opera:0, safari:0, konq:0 };
//获得客户端浏览器的信息
var ua = navigator.useragent.tolowercase();
for (var type in engine) {
if (typeof type === 'string') {
var regexp = 'gecko' === type ? /rv:([\w.]+)/ : regexp(type + '[ \\/]([\\w.]+)');
if (regexp.test(ua)){
engine.version = window.opera ? window.opera.version() : regexp.$1;//浏览器内核版本
engine[type] = parsefloat(engine.version);
engine.type = type;//浏览器内核类型
break;
}
}
}
for (var type in shell) {
if (typeof type === 'string') {
var regexp = null;
switch(type) {
case se360: regexp = /360se(?:[ \/]([\w.]+))?/; break;
case se: regexp = /se ([\w.]+)/; break;
case qq: regexp = /qqbrowser\/([\w.]+)/; break;
case tt: regexp = /tencenttraveler ([\w.]+)/; break;
case safari: regexp = /version\/([\w.]+)/; break;
case konq: regexp = /konqueror\/([\w.]+)/; break;
case netscape: regexp = /navigator\/([\w.]+)/; break;
default: regexp = regexp(type + '(?:[ \\/]([\\w.]+))?');
}
if (regexp.test(ua)) {
shell.version = window.opera ? window.opera.version() : regexp.$1 ? regexp.$1 : 'unknown';//浏览器外壳版本
shell[type] = parsefloat(shell.version);
shell.type = type;//浏览器外壳类型
break;
}
}
}
//返回浏览器内核与外壳的类型和版本:engine为内核,shell为外壳
return { engine: engine, shell: shell };
}
};
/**
* jquery插件开发方法二:第二步:执行插件
* jquery.mybrowser插件:获得浏览器的内核与外壳的类型和版本
* 使用示例:
* (1)浏览器内核:alert(您的浏览器信息如下:\n内核类型:+jquery.mybrowser.engine.type+,内核版本:+jquery.mybrowser.engine.version);
* (2)浏览器外壳:alert(您的浏览器信息如下:\n外壳类型:+jquery.mybrowser.shell.type+,外壳版本:+jquery.mybrowser.shell.version);
*/
jquery.mybrowser = jquery.myplugin.client();
使用示例:(test.html)
复制代码 代码如下:
获得浏览器的信息
测试浏览器的内核与外壳的类型和版本: