尤其是在当今各种浏览器满天飞(据说仅以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)
获得浏览器的信息
测试浏览器的内核与外壳的类型和版本:
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn