JavaScript を使用したブラウザのバージョンとオペレーティング システムの検出
問題:
を検出する必要がありますブラウザのバージョンとオペレーティング システムは JavaScript を使用していますが、提供されたコードは Internet Explorer では機能しません6.
解決策:
指定したコードは、Internet Explorer 6 などの古いブラウザーではサポートされていないナビゲーター オブジェクトの特定のプロパティに依存しています。この問題に対処するには、さまざまなブラウザ実装を考慮した、より包括的なアプローチを使用できます。
次の JavaScript コード スニペットは、ブラウザのバージョンの詳細な分析を提供します。オペレーティング システム:
var nVer = navigator.appVersion; var nAgt = navigator.userAgent; var browserName = navigator.appName; var fullVersion = ''+parseFloat(navigator.appVersion); var majorVersion = parseInt(navigator.appVersion,10); var nameOffset,verOffset,ix; // In Opera, the true version is after "OPR" or after "Version" if ((verOffset=nAgt.indexOf("OPR"))!=-1) { browserName = "Opera"; fullVersion = nAgt.substring(verOffset+4); if ((verOffset=nAgt.indexOf("Version"))!=-1) fullVersion = nAgt.substring(verOffset+8); } // In MS Edge, the true version is after "Edg" in userAgent else if ((verOffset=nAgt.indexOf("Edg"))!=-1) { browserName = "Microsoft Edge"; fullVersion = nAgt.substring(verOffset+4); } // In MSIE, the true version is after "MSIE" in userAgent else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) { browserName = "Microsoft Internet Explorer"; fullVersion = nAgt.substring(verOffset+5); } // In Chrome, the true version is after "Chrome" else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) { browserName = "Chrome"; fullVersion = nAgt.substring(verOffset+7); } // In Safari, the true version is after "Safari" or after "Version" else if ((verOffset=nAgt.indexOf("Safari"))!=-1) { browserName = "Safari"; fullVersion = nAgt.substring(verOffset+7); if ((verOffset=nAgt.indexOf("Version"))!=-1) fullVersion = nAgt.substring(verOffset+8); } // In Firefox, the true version is after "Firefox" else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) { browserName = "Firefox"; fullVersion = nAgt.substring(verOffset+8); } // In most other browsers, "name/version" is at the end of userAgent else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < (verOffset=nAgt.lastIndexOf('/')) ) { browserName = nAgt.substring(nameOffset,verOffset); fullVersion = nAgt.substring(verOffset+1); if (browserName.toLowerCase()==browserName.toUpperCase()) { browserName = navigator.appName; } } // trim the fullVersion string at semicolon/space if present if ((ix=fullVersion.indexOf(";"))!=-1) fullVersion=fullVersion.substring(0,ix); if ((ix=fullVersion.indexOf(" "))!=-1) fullVersion=fullVersion.substring(0,ix); majorVersion = parseInt(''+fullVersion,10); if (isNaN(majorVersion)) { fullVersion = ''+parseFloat(navigator.appVersion); majorVersion = parseInt(navigator.appVersion,10); } console.log('' +'Browser name = '+browserName+'<br>' +'Full version = '+fullVersion+'<br>' +'Major version = '+majorVersion+'<br>' +'navigator.appName = '+navigator.appName+'<br>' +'navigator.userAgent = '+navigator.userAgent+'<br>' );
出力例:
Firefox/12.0 の場合、出力は次のようになります:
Browser name = Firefox Full version = 12.0 Major version = 12 navigator.appName = Netscape navigator.userAgent = Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0
このアプローチは包括的にさまざまなブラウザーとバージョンにわたるブラウザーのバージョンとオペレーティング システムを検出します。
以上がInternet Explorer 6 で JavaScript を使用してブラウザのバージョンとオペレーティング システムを検出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。