jQueryはどのようにブラウザの検出を削除しましたか?

2410 ワード

HTML 5関連のプロジェクトを行うため、多くの前衛的でモダンなフロントエンド技術はIEがサポートされているかどうかを考慮する必要があります.以前ならjQueryのjQueryを簡単に呼び出すことができた.browserが実現します.
If(jQuery.browser.msie) alert(“DIE IE!”)

しかし、この便利さはjQuery 1.9以降は存在しなくなった.突然、最も親密な戦友を失ったような気がします.私が開発すると離れられない良い基友、私が離れたらブラウザをまたぐフロントエンドコードを書くことができない良いツールです.急にどうしたらいいか分からなかった.
それから毎回IEを考える必要がある時、私はgoogleに行って、どのように1.9バージョンのjQueryでIEを検出して、しかしStackOverFlowの上の多数の答えはすべて私に教えます:jQuery 1.9廃棄ラーjQuery.browser、jQueryを使うことをお勧めします.supportですが、なぜか教えてくれる人はいません.
その时、私の头がドアに挟まれて半日反応できないのか分からないが、なぜ廃棄されたのか、どうせ私の目的は简単で、今のユーザーが使っているのがIEかどうかを検出する必要があります.IEでなければ、私は関連するヒントを弾いて、ユーザーにIEを使っていることを伝える必要があります.いくつかの机能はクラウドをサポートされていない可能性があります.
仕方なく、私のコードはjQueryのない石器時代に戻り、最も原始的な最もplain的なJavaScriptコードでIEを検出した.このような方法については、無数の先輩がIEとのゲームで多くの経験を積んだため、既成の方法はNを書いたことがあるので、私も勝手に選んで使っていた.しかも毎回使うのがすべて异なっていて、次回IEを検出する时、またGoogleに行って、别の1段のコードを得て同じ効果を达成します.
しかし、問題は違和感を感じることであり、IEを検出するためには、ページ機能論理に関係のないコードを多く出す必要がある.これは、解読ソフトウェアをインストールし、同時に多くの広告プラグインを縛られているような気がします.
最近のWindows 8に伴う.1の髪部は勝手にそれに伴うIE 11に関心を持って、公式は意外にもこの商品がWegGL技術を支持すると言っています!IE 11はこのマイクロソフトが唾棄してきた技術をサポートします.これは実はあまりおかしくない.IEがフロントエンドの人に奇抜だと思われていたのはIE 6の時からだったので、何年も経っても開発者は共存しているのではないでしょうか.
しかし、IE 11はWebGLと本稿の毛糸関係を支持しているのだろうか.あまり関係ないですが、以前HTML 5プロジェクトでThreeを使っていたことにふと気づきました.jsの书いたものはIEの上で运行することができて、少なくともIE 11の上で!そのため、IEの検出は論理的ではないように見えた.私の天霊蓋は金の光が出てきたようで、前の誤解を出ました:確かにユーザーが使っているのがIEブラウザかどうかを検出する必要はありません.私たちの目的はコードを正常に動作させることです.現在のブラウザが私たちのコードの特性をサポートしている場合は、正常に動作し、サポートされていない場合は、ストライキにヒントを与えましょう.
だから私はなぜjQueryが1.9でjQueryをサポートしないのか理解しているようです.browserは、supportというAPIを提供し、私が再び「IEの検出」に関する問題を検索したとき、Modernizrを使用することを提案する声もあった.js(ブラウザ対HTML 5,CSS 3のサポート状況を検出するJavaScriptライブラリ).
検出IE自体が科学的ではないからだ.一部のHTML 5プロパティIEは現在サポートされていませんが、更新が続いているため、以降のバージョンでサポートされていないわけではありません.だから、コードの中にまだはっきりしたIE専用のコードがあると、かなり科学的ではありません.前述のWegGLブラウザの3 D関連プログラムのように、IE 11で実行できることは明らかだが、コードがブラウザIEを検出するだけでストライキをした後、「他のブラウザに交換してください」というヒントを自慢してポップアップした場合、IEは罪がないのではないか.
また、ブラウザがIEであるかどうかを検出するだけではなく、各ブラウザ間に差異があり、差異があるのは正常であり、IE以外のFireFox、Chrome、Opera、Safariなどであっても、各Web規格のサポートや実装において完全に一致していない理由もあります.つまり、一つのスタイルがChromeで正常にデバッグされ、FFでは少し違和感があるように見えます.JavaScriptコードの違いであれば、FFを検出するコードを書くべきかどうか.あるいはある日Operaの中である機能が出てきた結果にずれがあることを発見し、Operaを検出するコードを書くことで、このような考え方に問題があることを示します.
つまりModernizr.jsには武力を使う場所がある.コードが正常に実装されることを確認するには、現在のブラウザがこの機能をサポートしているかどうかを検出し、サポートされている場合はokay、コードが正常に実行され、サポートされていない場合は別のコードを実行する必要があります.