ホームページ ウェブフロントエンド jsチュートリアル JavaScript 上級プログラミング読書メモ (16) JavaScript 検出ブラウザとオペレーティング システム -detect.js_javascript スキル

JavaScript 上級プログラミング読書メモ (16) JavaScript 検出ブラウザとオペレーティング システム -detect.js_javascript スキル

May 16, 2016 pm 05:50 PM
オペレーティング·システム

ブラウザの検出方法

1. オブジェクト特徴検出方法: ブラウザの機能を判断する一般的な方法。ブラウザの実際の ID よりもブラウザの機能を重視する場合は、この検出方法を使用できます。このメソッドは、一般的なネイティブ Ajax 記述で XMLHttpRequest を作成するために使用されます:

コードをコピー コードは次のとおりです:

IXHR: function(){
if(window.ActiveXObject){
XHR=new ActiveXObject('Microsoft.XMLHTTP')
}else if(window.XMLHttpRequest){
XHR =new XMLHttpRequest();
}else{
return null;
}
}

2. ブラウザ経由-agent 文字列を解析して判定します。判定方法は以下の detect.js 内にあります。

検出プラットフォーム/オペレーティングシステム

ナビゲーターのプラットフォーム属性とユーザーエージェント文字列を折り畳んで判定します。判定方法は以下の detect.js にあります

ブラウザとオペレーティングシステムの検出 -detect.js
コードをコピーコードは次のとおりです:

var sUserAgent = navigator.userAgent;
var fAppVersion = parseFloat(navigator.appVersion);

function CompareVersions(sVersion1, sVersion2) {
var aVersion1 = sVersion1.split(".");
var aVersion2 = sVersion2.split(".");

if (aVersion1.length > aVersion2.length) {
for (var i=0; i < aVersion1.length - aVersion2.length; i ) {
aVersion2.push(" 0");
}
} else if (aVersion1.length < aVersion2.length) {
for (var i=0; i aVersion1.lengthプッシュ("0");
}
}

for (var i=0; i < aVersion1.length; i ) {

if (aVersion1[i] < aVersion2[i]) {
-1 を返す;
} else if (aVersion1[i] > aVersion2[i]) {
return 1;
}
}

0 を返す;
}
var isOpera = sUserAgent.indexOf("Opera") > -1;
var isMinOpera4 = isMinOpera5 = isMinOpera6 = isMinOpera7 = isMinOpera7_5 = false;
if (isOpera) {
var fOperaVersion;
if(navigator.appName == "Opera") {
fOperaVersion = fAppVersion;
} else {
var reOperaVersion = new RegExp("Opera (//d //.//d )");
reOperaVersion.test(sUserAgent);
fOperaVersion = parseFloat(RegExp["$1"]);
}
isMinOpera4 = fOperaVersion >= 4;
isMinOpera5 = fOperaVersion >= 5;
isMinOpera6 = fOperaVersion >= 6;
isMinOpera7 = fOperaVersion >= 7;
isMinOpera7_5 = fOperaVersion >= 7.5;
}
var isKHTML = sUserAgent.indexOf("KHTML") > -1
|| sUserAgent.indexOf("Konqueror") > -1
|| sUserAgent.indexOf("AppleWebKit") > -1;

var isMinSafari1 = isMinSafari1_2 = false;
var isMinKonq2_2 = isMinKonq3 = isMinKonq3_1 = isMinKonq3_2 = false;
if (isKHTML) {
isSafari = sUserAgent.indexOf("AppleWebKit") > -1;
isKonq = sUserAgent.indexOf("Konqueror") > -1;
if (isSafari) {
var reAppleWebKit = new RegExp("AppleWebKit///(//d (?://.//d*)?)");
reAppleWebKit.test(sUserAgent);
var fAppleWebKitVersion = parseFloat(RegExp["$1"]);
isMinSafari1 = fAppleWebKitVersion >= 85;
isMinSafari1_2 = fAppleWebKitVersion >= 124;
} else if (isKonq) {
var reKonq = new RegExp("Konqueror///(//d (?://.//d (?://.//d)?)? )");
reKonq.test(sUserAgent);
isMinKonq2_2 = CompareVersions(RegExp["$1"], "2.2") >= 0;
isMinKonq3 = CompareVersions(RegExp["$1"], "3.0") >= 0;
isMinKonq3_1 = CompareVersions(RegExp["$1"], "3.1") >= 0;
isMinKonq3_2 = CompareVersions(RegExp["$1"], "3.2") >= 0;
}

}
var isIE = sUserAgent.indexOf("互換性") > -1
&& sUserAgent.indexOf("MSIE") > -1
&& !isOpera;

var isMinIE4 = isMinIE5 = isMinIE5_5 = isMinIE6 = false;
if (isIE) {
var reIE = new RegExp("MSIE (//d //.//d );");
reIE.test(sUserAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
isMinIE4 = fIEVersion >= 4;
isMinIE5 = fIEVersion >= 5;
isMinIE5_5 = fIEVersion >= 5.5;
isMinIE6 = fIEVersion >= 6.0;
}
var isMoz = sUserAgent.indexOf("Gecko") > -1
&& !isKHTML;
var isMinMoz1 = sMinMoz1_4 = isMinMoz1_5 = false;
if (isMoz) {
var reMoz = new RegExp("rv:(//d //.//d (?://.//d )?)");
reMoz.test(sUserAgent);
isMinMoz1 = CompareVersions(RegExp["$1"], "1.0") >= 0;
isMinMoz1_4 = CompareVersions(RegExp["$1"], "1.4") >= 0;
isMinMoz1_5 = CompareVersions(RegExp["$1"], "1.5") >= 0;
}
var isNS4 = !isIE && !isOpera && !isMoz && !isKHTML
&& (sUserAgent.indexOf("Mozilla") == 0)
&& (navigator.appName == "Netscape) ")
&& (fAppVersion >= 4.0 && fAppVersion var isMinNS4 = isMinNS4_5 = isMinNS4_7 = isMinNS4_8 = false;
if (isNS4) {
isMinNS4 = true;
isMinNS4_5 = fAppVersion >= 4.5;
isMinNS4_7 = fAppVersion >= 4.7;
isMinNS4_8 = fAppVersion >= 4.8;
}
var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC")
|| (navigator.platform == "Macintosh");
var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
var isWin95 = isWin98 = isWinNT4 = isWin2K = isWinME = isWinXP = false;
var isMac68K = isMacPPC = false;
var isSunOS = isMinSunOS4 = isMinSunOS5 = isMinSunOS5_5 = false;
if (isWin) {
isWin95 = sUserAgent.indexOf("Win95") > -1
|| sUserAgent.indexOf("Windows 95") > -1;
isWin98 = sUserAgent.indexOf("Win98") > -1
|| sUserAgent.indexOf("Windows 98") > -1;
isWinME = sUserAgent.indexOf("Win 9x 4.90") > -1
|| sUserAgent.indexOf("Windows ME") > -1;
isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1
|| sUserAgent.indexOf("Windows 2000") > -1;
isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1
|| sUserAgent.indexOf("Windows XP") > -1;
isWinNT4 = sUserAgent.indexOf("WinNT") > -1
|| sUserAgent.indexOf("Windows NT") > -1
|| sUserAgent.indexOf("WinNT4.0") > -1
|| sUserAgent.indexOf("Windows NT 4.0") > -1
&& (!isWinME && !isWin2K && !isWinXP);
}
if (isMac) {
isMac68K = sUserAgent.indexOf("Mac_68000") > -1
|| sUserAgent.indexOf("68K") > -1;
isMacPPC = sUserAgent.indexOf("Mac_PowerPC") > -1
|| sUserAgent.indexOf("PPC") > -1;
}
if (isUnix) {
isSunOS = sUserAgent.indexOf("SunOS") > -1;
if (isSunOS) {
var reSunOS = new RegExp("SunOS (//d //.//d (?://.//d )?)");
reSunOS.test(sUserAgent);
isMinSunOS4 = CompareVersions(RegExp["$1"], "4.0") >= 0;
isMinSunOS5 = CompareVersions(RegExp["$1"], "5.0") >= 0;
isMinSunOS5_5 = CompareVersions(RegExp["$1"], "5.5") >= 0;
}
}

作者:Artwl
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CentosでのZookeeperのパフォーマンスを調整する方法は何ですか CentosでのZookeeperのパフォーマンスを調整する方法は何ですか Apr 14, 2025 pm 03:18 PM

CENTOSでのZookeeperパフォーマンスチューニングは、ハードウェア構成、オペレーティングシステムの最適化、構成パラメーターの調整、監視、メンテナンスなど、複数の側面から開始できます。特定のチューニング方法を次に示します。SSDはハードウェア構成に推奨されます。ZookeeperのデータはDISKに書き込まれます。十分なメモリ:頻繁なディスクの読み取りと書き込みを避けるために、Zookeeperに十分なメモリリソースを割り当てます。マルチコアCPU:マルチコアCPUを使用して、Zookeeperが並行して処理できるようにします。

Oracleデータベースの作成方法Oracleデータベースの作成方法 Oracleデータベースの作成方法Oracleデータベースの作成方法 Apr 11, 2025 pm 02:36 PM

Oracleデータベースを作成するには、一般的な方法はDBCAグラフィカルツールを使用することです。手順は次のとおりです。1。DBCAツールを使用してDBNAMEを設定してデータベース名を指定します。 2. SyspasswordとSystemPassWordを強力なパスワードに設定します。 3.文字セットとNationalCharactersetをAL32UTF8に設定します。 4.実際のニーズに応じて調整するようにMemorySizeとTableSpacesizeを設定します。 5. logfileパスを指定します。 高度な方法は、SQLコマンドを使用して手動で作成されますが、より複雑でエラーが発生しやすいです。 パスワードの強度、キャラクターセットの選択、表空間サイズ、メモリに注意してください

DebianがHadoopデータ処理速度を改善する方法 DebianがHadoopデータ処理速度を改善する方法 Apr 13, 2025 am 11:54 AM

この記事では、DebianシステムのHadoopデータ処理効率を改善する方法について説明します。最適化戦略では、ハードウェアのアップグレード、オペレーティングシステムパラメーターの調整、Hadoop構成の変更、および効率的なアルゴリズムとツールの使用をカバーしています。 1.ハードウェアリソースの強化により、すべてのノードが一貫したハードウェア構成、特にCPU、メモリ、ネットワーク機器のパフォーマンスに注意を払うことが保証されます。高性能ハードウェアコンポーネントを選択することは、全体的な処理速度を改善するために不可欠です。 2。オペレーティングシステムチューニングファイル記述子とネットワーク接続:/etc/security/limits.confファイルを変更して、システムによって同時に開くことができるファイル記述子とネットワーク接続の上限を増やします。 JVMパラメーター調整:Hadoop-env.shファイルで調整します

Linuxは実際に何に適していますか? Linuxは実際に何に適していますか? Apr 12, 2025 am 12:20 AM

Linuxは、サーバー、開発環境、埋め込みシステムに適しています。 1.サーバーオペレーティングシステムとして、Linuxは安定して効率的であり、多くの場合、高電流アプリケーションの展開に使用されます。 2。開発環境として、Linuxは効率的なコマンドラインツールとパッケージ管理システムを提供して、開発効率を向上させます。 3.埋め込まれたシステムでは、Linuxは軽量でカスタマイズ可能で、リソースが限られている環境に適しています。

Redis Restartサービスはどこですか Redis Restartサービスはどこですか Apr 10, 2025 pm 02:36 PM

さまざまなオペレーティングシステムでRedisサービスを再起動する方法:Linux/MacOS:SystemCTLコマンド(SystemCTL RestArt Redis-Server)またはServiceコマンド(Service Redis-Server Restart)を使用します。 Windows:services.mscツール([実行]ダイアログボックスに「serversis.msc」を入力してEnterを押します)を使用し、「redis」サービスを右クリックして[再起動]を選択します。

Apacheはどの言語に書かれていますか? Apacheはどの言語に書かれていますか? Apr 13, 2025 pm 12:42 PM

ApacheはCで書かれています。言語は、速度、安定性、移植性、直接ハードウェアアクセスを提供し、Webサーバーの開発に最適です。

Centosはmysqlをインストールします Centosはmysqlをインストールします Apr 14, 2025 pm 08:09 PM

CentOSにMySQLをインストールするには、次の手順が含まれます。適切なMySQL Yumソースの追加。 yumを実行して、mysql-serverコマンドをインストールして、mysqlサーバーをインストールします。ルートユーザーパスワードの設定など、MySQL_SECURE_INSTALLATIONコマンドを使用して、セキュリティ設定を作成します。必要に応じてMySQL構成ファイルをカスタマイズします。 MySQLパラメーターを調整し、パフォーマンスのためにデータベースを最適化します。

MACシステムを発明した人 MACシステムを発明した人 Apr 12, 2025 pm 05:12 PM

MacOSオペレーティングシステムはAppleによって発明されました。その前身であるSystem Softwareは1984年に発売されました。多くの反復後、2001年にMac OS Xに更新され、2012年に名前をMacosに変更しました。

See all articles