利用jQuery插件擴(kuò)展識(shí)別瀏覽器內(nèi)核與外殼的類型和版本的實(shí)現(xiàn)代碼
更新時(shí)間:2011年10月22日 15:04:43 作者:
在平時(shí)的B/S開發(fā)中,經(jīng)常需要知道瀏覽器的內(nèi)核類型和版本,甚至,有時(shí)還需要知道瀏覽器的外殼類型和版本
尤其是在當(dāng)今各種瀏覽器滿天飛(據(jù)說僅以IE為內(nèi)核的瀏覽器就有200種之多)。
小弟今天寫了個(gè)基于jQuery的插件擴(kuò)展,主要用于識(shí)別瀏覽器內(nèi)核與外殼的類型和版本。可識(shí)別各種瀏覽器的內(nèi)核,并已經(jīng)支持多種國內(nèi)主流瀏覽器。
費(fèi)話不多說,上我的JavaScript代碼:(文件名:jquery.browsertype-1.0.js)
/**
* jQuery插件開發(fā)方法二:第一步:插件定義
*/
jQuery.myPlugin = {
//獲得瀏覽器的內(nèi)核與外殼的類型和版本
Client: function (){
//瀏覽器內(nèi)核類型(只有五種)
var engine = { ie:0, webkit:0, gecko:0, opera:0, khtml:0 };
//瀏覽器外殼類型(國內(nèi)常見的瀏覽器有:360瀏覽器、傲游、騰訊QQ\TT瀏覽器、世界之窗、彗星瀏覽器、綠色瀏覽器、傳統(tǒng)IE、谷歌Chrome、網(wǎng)景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;//瀏覽器內(nèi)核版本
engine[type] = parseFloat(engine.version);
engine.type = type;//瀏覽器內(nèi)核類型
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;
}
}
}
//返回瀏覽器內(nèi)核與外殼的類型和版本:engine為內(nèi)核,shell為外殼
return { engine: engine, shell: shell };
}
};
/**
* jQuery插件開發(fā)方法二:第二步:執(zhí)行插件
* jQuery.myBrowser插件:獲得瀏覽器的內(nèi)核與外殼的類型和版本
* 使用示例:
* (1)瀏覽器內(nèi)核:alert("您的瀏覽器信息如下:\n內(nèi)核類型:"+jQuery.myBrowser.engine.type+",內(nèi)核版本:"+jQuery.myBrowser.engine.version);
* (2)瀏覽器外殼:alert("您的瀏覽器信息如下:\n外殼類型:"+jQuery.myBrowser.shell.type+",外殼版本:"+jQuery.myBrowser.shell.version);
*/
jQuery.myBrowser = jQuery.myPlugin.Client();
使用示例:(test.html)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>獲得瀏覽器的信息</title>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1.4.2");
google.load("jqueryui", "1.7.2");
</script>
<script type="text/javascript" src="jquery.browsertype-1.0.js"></script>
<script type="text/javascript">
alert("您的瀏覽器信息如下:\n內(nèi)核類型:"+jQuery.myBrowser.engine.type+",內(nèi)核版本:"+jQuery.myBrowser.engine.version);
alert("您的瀏覽器信息如下:\n外殼類型:"+jQuery.myBrowser.shell.type+",外殼版本:"+jQuery.myBrowser.shell.version);
document.writeln("您的瀏覽器內(nèi)核類型 ——>"+jQuery.myBrowser.engine.type+":"+jQuery.myBrowser.engine.version+"<br>");
document.writeln("您的瀏覽器外殼類型 ——>"+jQuery.myBrowser.shell.type+":"+jQuery.myBrowser.shell.version+"<br>");
</script>
</head>
<body>
<br/>測(cè)試瀏覽器的內(nèi)核與外殼的類型和版本:<br/>
</body>
</html>
小弟今天寫了個(gè)基于jQuery的插件擴(kuò)展,主要用于識(shí)別瀏覽器內(nèi)核與外殼的類型和版本。可識(shí)別各種瀏覽器的內(nèi)核,并已經(jīng)支持多種國內(nèi)主流瀏覽器。
費(fèi)話不多說,上我的JavaScript代碼:(文件名:jquery.browsertype-1.0.js)
復(fù)制代碼 代碼如下:
/**
* jQuery插件開發(fā)方法二:第一步:插件定義
*/
jQuery.myPlugin = {
//獲得瀏覽器的內(nèi)核與外殼的類型和版本
Client: function (){
//瀏覽器內(nèi)核類型(只有五種)
var engine = { ie:0, webkit:0, gecko:0, opera:0, khtml:0 };
//瀏覽器外殼類型(國內(nèi)常見的瀏覽器有:360瀏覽器、傲游、騰訊QQ\TT瀏覽器、世界之窗、彗星瀏覽器、綠色瀏覽器、傳統(tǒng)IE、谷歌Chrome、網(wǎng)景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;//瀏覽器內(nèi)核版本
engine[type] = parseFloat(engine.version);
engine.type = type;//瀏覽器內(nèi)核類型
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;
}
}
}
//返回瀏覽器內(nèi)核與外殼的類型和版本:engine為內(nèi)核,shell為外殼
return { engine: engine, shell: shell };
}
};
/**
* jQuery插件開發(fā)方法二:第二步:執(zhí)行插件
* jQuery.myBrowser插件:獲得瀏覽器的內(nèi)核與外殼的類型和版本
* 使用示例:
* (1)瀏覽器內(nèi)核:alert("您的瀏覽器信息如下:\n內(nèi)核類型:"+jQuery.myBrowser.engine.type+",內(nèi)核版本:"+jQuery.myBrowser.engine.version);
* (2)瀏覽器外殼:alert("您的瀏覽器信息如下:\n外殼類型:"+jQuery.myBrowser.shell.type+",外殼版本:"+jQuery.myBrowser.shell.version);
*/
jQuery.myBrowser = jQuery.myPlugin.Client();
使用示例:(test.html)
復(fù)制代碼 代碼如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>獲得瀏覽器的信息</title>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1.4.2");
google.load("jqueryui", "1.7.2");
</script>
<script type="text/javascript" src="jquery.browsertype-1.0.js"></script>
<script type="text/javascript">
alert("您的瀏覽器信息如下:\n內(nèi)核類型:"+jQuery.myBrowser.engine.type+",內(nèi)核版本:"+jQuery.myBrowser.engine.version);
alert("您的瀏覽器信息如下:\n外殼類型:"+jQuery.myBrowser.shell.type+",外殼版本:"+jQuery.myBrowser.shell.version);
document.writeln("您的瀏覽器內(nèi)核類型 ——>"+jQuery.myBrowser.engine.type+":"+jQuery.myBrowser.engine.version+"<br>");
document.writeln("您的瀏覽器外殼類型 ——>"+jQuery.myBrowser.shell.type+":"+jQuery.myBrowser.shell.version+"<br>");
</script>
</head>
<body>
<br/>測(cè)試瀏覽器的內(nèi)核與外殼的類型和版本:<br/>
</body>
</html>
您可能感興趣的文章:
- jQuery插件擴(kuò)展實(shí)例【添加回調(diào)函數(shù)】
- jQuery插件擴(kuò)展extend的簡(jiǎn)單實(shí)現(xiàn)原理
- jQuery插件擴(kuò)展測(cè)試實(shí)例
- jQuery插件formValidator自定義函數(shù)擴(kuò)展功能實(shí)例詳解
- jQuery插件kinMaxShow擴(kuò)展效果用法實(shí)例
- jquery事件機(jī)制擴(kuò)展插件 jquery鼠標(biāo)右鍵事件
- JQuery模板插件 jquery.tmpl 動(dòng)態(tài)ajax擴(kuò)展
- boxy基于jquery的彈出層對(duì)話框插件擴(kuò)展應(yīng)用 彈出層選擇器
- jQuery下擴(kuò)展插件和拓展函數(shù)的寫法(匿名函數(shù)使用的典型例子)
- jquery.boxy插件的iframe擴(kuò)展代碼
- jQuery autocomplate 自擴(kuò)展插件、自動(dòng)完成示例代碼
- jQuery插件擴(kuò)展操作入門示例
相關(guān)文章
基于Jquery和CSS3制作數(shù)字時(shí)鐘附源碼下載(CSS3篇)
數(shù)字時(shí)鐘在web倒計(jì)時(shí),web鬧鐘效果以及基于html5的web app中,本文給大家介紹基于jquery和css3制作數(shù)字時(shí)鐘附源碼下載,感興趣的朋友來看看吧2015-11-11ASP.NET jQuery 實(shí)例3 (在TextBox里面阻止復(fù)制、剪切和粘貼事件)
在這講里,讓我們看下如何在ASP.NET Textbox里禁止復(fù)制、剪切和粘貼行為2012-01-01jQuery EasyUI ProgressBar進(jìn)度條組件
這篇文章主要為大家詳細(xì)介紹了jQuery EasyUI ProgressBar進(jìn)度條組件的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02jQuery實(shí)現(xiàn)只允許輸入數(shù)字和小數(shù)點(diǎn)的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)只允許輸入數(shù)字和小數(shù)點(diǎn)的方法,涉及jQuery針對(duì)鍵盤事件的響應(yīng)及字符串操作的相關(guān)技巧,需要的朋友可以參考下2016-03-03Jquery find與filter函數(shù)區(qū)別 說明
基本是find子元素找,filter是平級(jí)找2010-05-05jQuery實(shí)現(xiàn)ajax回調(diào)函數(shù)帶入?yún)?shù)的方法示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)ajax回調(diào)函數(shù)帶入?yún)?shù)的方法,結(jié)合實(shí)例形式對(duì)比分析了jQuery實(shí)現(xiàn)ajax回調(diào)函數(shù)不帶入?yún)?shù)與帶入?yún)?shù)的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-06-06