したがって、次のコードを書くことができます。
次のようにコードをコピーします。<script type = "text/javascript">
var sys = {};
var ua = navigator.useragent.tolowercase();
var s;
(s = ua.match(/msie([/d.]+))? sys.ie = s [1]:
(s = ua.match(/firefox //([/d。]+)/))? sys.firefox = s [1]:
(s = ua.match(/chrome //([/d。]+)/))? sys.chrome = s [1]:
(s = ua.match(/opera。([/d。]+)/))? sys.opera = s [1]:
(s = ua.match(/version //([/d。]+)。*safari/))? sys.safari = s [1]:0;
//次のテスト
if(sys.ie)document.write( 'ie:' + sys.ie);
if(sys.firefox)document.write( 'firefox:' + sys.firefox);
if(sys.chrome)document.write( 'chrome:' + sys.chrome);
if(sys.opera)document.write( 'opera:' + sys.opera);
if(sys.safari)document.write( 'safari:' + sys.safari);
</script>
その中で、コードを簡素化するために、三元演算子などの判断式が使用されます。判断条件は、正規表現のマッチングと結果のコピーを完了するだけでなく、条件付き判断を直接使用する課題声明です。後続のバージョン情報は、非常に効率的なコードである以前のマッチング結果から抽出する必要があります。
将来的には、特定のブラウザをif(sys.ie)またはif(sys.firefox)の形式で判断するだけで、if(sys.ie == '8.0')またはif(sys.firefox == '3.0')の形式でブラウザバージョンを判断する必要があります。
オペレーティングシステムのバージョンを取得します。
次のようにコードをコピーします。<script type = "text/javascript">
//システムバージョンを取得するために使用されます(注:この方法はFirefoxとChromeで無効です)
var ua = window.navigator.useragent;
var osversion = ua.split( ";")[2];
var osv = osversion.substr(osversion.length-3,3);
スイッチ(OSV)
{
ケース "5.0":
document.write( "windows2000");
壊す;
ケース "5.1":
document.write( "windowsxp");
壊す;
ケース "5.2":
document.write( "windows2003");
壊す;
ケース "6":
document.write( "WindowsVista");
壊す;
ケース "6.1":
document.write( "Windows 7");
壊す;
デフォルト:
document.write( "その他");
}
</script>