特に昨今では、さまざまなブラウザが飛び交っています(IEを中心としたブラウザは200種類もあると言われています)。
今日は、主にブラウザのカーネルとシェルの種類とバージョンを識別するために使用される、jQuery に基づいたプラグイン拡張機能を作成しました。さまざまなブラウザのカーネルを識別でき、すでにさまざまな国内主流ブラウザをサポートしています。
早速、私の JavaScript コードを示します: (ファイル名: jquery.browsertype-1.0.js)
/**
* jQuery プラグイン開発方法 2: ステップ 1: プラグインの定義
*/
jQuery.myPlugin = {
//ブラウザのカーネルとシェルの種類とバージョンを取得します
Client : function (){
//ブラウザカーネルタイプ (5 種類のみ)
var Engine = { ie:0, webkit:0, gecko:0, opera:0, khtml:0 }; //ブラウザ シェル タイプ (一般的な国内ブラウザには、360 ブラウザ、Maxthon、Tencent QQTT ブラウザ、Window of the World、Comet ブラウザ、Green ブラウザ、従来型 IE、Google Chrome、Netscape、Firefox、Opera 、Apple Safari など)
var シェル = { 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 タイプ) {
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;//ブラウザ カーネル タイプ
}
}
(シェルの var type) {
if (typeof type === 'string') {
var regexp = null;
switch(type) {
case "se360": regexp = /360se (?:[ /]([w.] ))?/; ブレーク
ケース "se": /se ([w.] )/; ブレーク
ケース "qq": regexp = /qqbrowser/([w.] )/; ブレーク
ケース "tt": regexp = /tencenttraveler ([w.] )/; ブレーク
ケース "safari": regexp = /version/([ w.] )/; ブレーク
case "konq": regexp = /konqueror/([w.] )/;
case "netscape" : regexp = /navigator/([w.] ) /; ブレーク;
デフォルト: 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;
}
}
}
//ブラウザのカーネルとシェルのタイプとバージョンを返します。エンジンはカーネル、シェルはシェルです
return { エンジン: エンジン, シェル: シェル }
}
};
/**
* jQuery プラグイン開発方法 2: ステップ 2: プラグインの実行
* jQuery.myBrowser プラグイン: ブラウザのカーネルとシェルの種類とバージョンを取得します
* 使用例:
* (1) ブラウザカーネル:alert("ブラウザの情報は次のとおりです: nkernel type: " jQuery.myBrowser.engine.type "、kernel version: " jQuery.myBrowser.engine.version); 2) ブラウザシェル:alert("あなたのブラウザ情報は次のとおりです:シェルタイプ:" jQuery.myBrowser.shell.type "、シェルバージョン:" jQuery.myBrowser.shell.version);*/
jQuery.myBrowser = jQuery.myPlugin.Client();
使用例: (test.html)
コードをコピー