2005/09/27 (Ver 0.5.0+)
このScriptは、いわゆるフリー(使用自由、改造自由かつ自己責任)な JavaScript なのでこれを使用しても作者が対価を求める事は、有りません。→ (無料)
ブラウザが固有にサポートする[object]
や、機能を利用して短いコードでウェブブラウザを判定します。
なるべく従来の UserAgent 文字列判別ばかりに頼らないので特に IEでのUserAgen偽装をされると困るので除外処理したい場合等の用途をターゲットにしています。
エラー補正追加 : (Thu, 27 Sep 2005 07:00:00 +0900) サンプル JavaScript の getVersion()関数内の Gecko: rv を取り出す箇所に、存在しない変数を操作していたので Geckoでは エラーが発生し、 "バージョンチェック ダイアログ" が出ませんでしたので訂正しました。 基本部分コードには、変化ありませんのでお知らせします。
/* ++++ JavaScript Support Check 2005/07/14 (Ver 0.5.0) ++++ */ var d = document; var nv = navigator; var an = nv.appName; var ua = nv.userAgent; var axo = (window.ActiveXObject) ? 1 : 0; var gtn = (d.getElementsByTagName) ? 1 : 0; var ccs = (d.createCDATASection) ? 1 : 0; var cns = (d.createElementNS) ? 1 : 0; var cm = (d.compatMode) ? 1 : 0; var op = (window.opera) ? 1 : 0; var vs = (nv.vendor && typeof nv.vendor == 'string') ? 1 : 0; var jsv = 0; var winIe = 0; var macIe = 0; /*@cc_on jsv = @_jscript_version; @if (@_win64 || @_win32 || @_win16) winIe = 1; @elif (@_mac && (@_PowerPC || @_mc680x0)) macIe = 1; @end @*/ var winIe7 = (winIe && gtn && cm && axo && jsv > 5.6) ? 1 : 0; var winIe6 = (winIe && gtn && cm && axo && jsv == 5.6) ? 1 : 0; var winIe55 = (winIe && gtn && !cm && axo && jsv == 5.5) ? 1 : 0; var winIe5 = (winIe && gtn && !cm && axo) ? 1 : 0; var winIe4 = (winIe && d.all && !gtn && axo) ? 1 : 0; var macIe5 = (macIe && gtn && !cm && !cns && ccs) ? 1 : 0; var macIe4 = (macIe && d.all && !gtn && !axo) ? 1 : 0; var op8 = (op && cns && ccs) ? 1 : 0; var op7 = (op && cns && !ccs && cm) ? 1 : 0; var op6 = (op && !cns && !cm) ? 1 : 0; var saf = (vs && ccs && cns && ua.indexOf('AppleWebKit') != -1) ? 1 : 0; var kde = (vs && ccs && cns && ua.indexOf('Konqueror') != -1) ? 1 : 0; var gec = (vs && ccs && cns && nv.product && nv.product == 'Gecko' && !saf && !kde) ? 1 : 0; var nn4 = (d.layers && typeof d.layers == 'object') ? 1 : 0; // var ica = (vs && nv.vendor == 'iCab') ? 1 : 0;
対応するブラウザが有った場合、各変数の内どれかが、1 のフラグを立てます。
This URL: http://www.minc.ne.jp/~konda/web_resoce/js/ua-object.html