ホームページ ウェブフロントエンド jsチュートリアル カプセル化された js によってオペレーティング システムとブラウザのコード共有_JavaScript スキルが決定される

カプセル化された js によってオペレーティング システムとブラウザのコード共有_JavaScript スキルが決定される

May 16, 2016 pm 04:21 PM
js オペレーティング·システム ブラウザ

概要:
フロントエンド開発において最も重要なタスクは、互換性、システム互換性、ブラウザ互換性などです。今日は、オペレーティング システムとブラウザを決定するためにプロジェクトにカプセル化したメソッドを共有します。

オペレーティング システム:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

var os = (function() {

  var UserAgent = navigator.userAgent.toLowerCase();

  return {

    isIpad     : /ipad/.test(UserAgent),

    isIphone    : /iphone os/.test(UserAgent),

    isAndroid    : /android/.test(UserAgent),

    isWindowsCe   : /windows ce/.test(UserAgent),

    isWindowsMobile : /windows mobile/.test(UserAgent),

    isWin2K     : /windows nt 5.0/.test(UserAgent),

    isXP      : /windows nt 5.1/.test(UserAgent),

    isVista     : /windows nt 6.0/.test(UserAgent),

    isWin7     : /windows nt 6.1/.test(UserAgent),

    isWin8     : /windows nt 6.2/.test(UserAgent),

    isWin81     : /windows nt 6.3/.test(UserAgent)

  };

}());

ログイン後にコピー

システムが iPad であるかどうかを判断したい場合は、if(os.isIpad) {} を判断するだけで済みます。

ブラウザ:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

var bw = (function() {

  var UserAgent = navigator.userAgent.toLowerCase();

  return {

    isUc   : /ucweb/.test(UserAgent), // UC浏览器

    isChrome : /chrome/.test(UserAgent.substr(-33,6)), // Chrome浏览器

    isFirefox : /firefox/.test(UserAgent), // 火狐浏览器

    isOpera  : /opera/.test(UserAgent), // Opera浏览器

    isSafire : /safari/.test(UserAgent) && !/chrome/.test(UserAgent), // safire浏览器

    is360   : /360se/.test(UserAgent), // 360浏览器

    isBaidu  : /bidubrowser/.test(UserAgent), // 百度浏览器

    isSougou : /metasr/.test(UserAgent), // 搜狗浏览器

    isIE6   : /msie 6.0/.test(UserAgent), // IE6

    isIE7   : /msie 7.0/.test(UserAgent), // IE7

    isIE8   : /msie 8.0/.test(UserAgent), // IE8

    isIE9   : /msie 9.0/.test(UserAgent), // IE9

    isIE10  : /msie 10.0/.test(UserAgent), // IE10

    isIE11  : /msie 11.0/.test(UserAgent), // IE11

    isLB   : /lbbrowser/.test(UserAgent), // 猎豹浏览器

     isWX   : /micromessenger/.test(UserAgent), // 微信内置浏览器

    isQQ   : /qqbrowser/.test(UserAgent) // QQ浏览器

  };

}());

ログイン後にコピー

]

概要:
ブラウザはすべて私が個人的にテストしたもので、問題がある可能性があるのは Chrome ブラウザです。ほとんどのブラウザは WebKit カーネルを使用しているため、それを区別するために Chrome のナビゲータをインターセプトしました。今後chromeのナビの情報位置やchrome以降の長さが変わると不具合が起きやすいかもしれませんが、今のところは大丈夫そうです。

モバイル UC ブラウザは、Baidu 広告をブロックすることがよくありますが、Google 広告はブロックしないため、UC ブラウザであるかどうかを判断するために追加できます。UC ブラウザではない場合は、Baidu 広告を表示します。 Google 広告が表示されます

1

2

3

4

5

if(navigator.userAgent.indexOf('UCBrowser') > -1) {

alert("uc浏览器");

}else

//不是uc浏览器执行的操作

ログイン後にコピー

実際、特定のブラウザの一部の特別な操作は

を通じて実行できます。

JS がブラウザ情報を取得します
ブラウザのコード名: navigator.appCodeName
ブラウザ名: navigator.appName
ブラウザのバージョン番号: navigator.appVersion
Java のサポート: navigator.javaEnabled()
MIME タイプ (配列): navigator.mimeTypes
システムプラットフォーム: navigator.platform
プラグイン (配列): navigator.plugins
ユーザーエージェント: navigator.userAgent

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Webページにローカルにインストールされている「Jingnan Mai Round Body」を正しく表示するにはどうすればよいですか? Webページにローカルにインストールされている「Jingnan Mai Round Body」を正しく表示するにはどうすればよいですか? Apr 05, 2025 pm 10:33 PM

最近、Webページにローカルにインストールされたフォントファイルを使用して、インターネットから無料のフォントをダウンロードし、システムに正常にインストールしました。今...

H5とミニプログラムとアプリの違い H5とミニプログラムとアプリの違い Apr 06, 2025 am 10:42 AM

H5。ミニプログラムとアプリの主な違いは次のとおりです。技術アーキテクチャ:H5はWebテクノロジーに基づいており、ミニプログラムとアプリは独立したアプリケーションです。経験と機能:H5は軽量で使いやすく、機能が限られています。ミニプログラムは軽量で、インタラクティブが良好です。アプリは強力で、スムーズな経験があります。互換性:H5はクロスプラットフォーム互換性があり、アプレットとアプリはプラットフォームによって制限されています。開発コスト:H5には、開発コストが低く、中程度のミニプログラム、最高のアプリがあります。適用可能なシナリオ:H5は情報表示に適しており、アプレットは軽量アプリケーションに適しており、アプリは複雑な機能に適しています。

ネガティブマージンが場合によっては効果がないのはなぜですか?この問題を解決する方法は? ネガティブマージンが場合によっては効果がないのはなぜですか?この問題を解決する方法は? Apr 05, 2025 pm 10:18 PM

なぜマイナスマージンが場合によっては有効にならないのですか?プログラミング中、CSSの負のマージン(負...

フレックスレイアウトの下のテキストは省略されていますが、コンテナは開かれていますか?それを解決する方法は? フレックスレイアウトの下のテキストは省略されていますが、コンテナは開かれていますか?それを解決する方法は? Apr 05, 2025 pm 11:00 PM

フレックスレイアウトとソリューションの下でのテキストの過度の省略によるコンテナの開口部の問題が使用されます...

CSSとFlexBoxを使用して、さまざまな画面サイズで画像とテキストのレスポンシブレイアウトを実装する方法は? CSSとFlexBoxを使用して、さまざまな画面サイズで画像とテキストのレスポンシブレイアウトを実装する方法は? Apr 05, 2025 pm 06:06 PM

CSSを使用してレスポンシブレイアウトを実装して、Webデザインのさまざまな画面サイズの下でレイアウトの変更を実装する場合、CSS ...

エッジブラウザの特定のDIV要素が表示されないのはなぜですか?この問題を解決する方法は? エッジブラウザの特定のDIV要素が表示されないのはなぜですか?この問題を解決する方法は? Apr 05, 2025 pm 08:21 PM

ユーザーエージェントスタイルシートによって引き起こされるディスプレイの問題を解決する方法は? Edgeブラウザを使用する場合、プロジェクトのDIV要素を表示することはできません。チェックした後、私は投稿しました...

JavaScriptまたはCSSを介してブラウザ印刷設定でページの上部と終了を制御する方法は? JavaScriptまたはCSSを介してブラウザ印刷設定でページの上部と終了を制御する方法は? Apr 05, 2025 pm 10:39 PM

JavaScriptまたはCSSを使用して、ブラウザの印刷設定のページの上部と端を制御する方法。ブラウザの印刷設定には、ディスプレイが...

Webページにローカルにインストールされたフォントファイルを使用する方法は? Webページにローカルにインストールされたフォントファイルを使用する方法は? Apr 05, 2025 pm 10:57 PM

Webページにローカルにインストールされたフォントファイルを使用する方法Webページ開発でこの状況に遭遇しましたか:コンピューターにフォントをインストールしました...

See all articles