ブラウザの種類とバージョンを簡易的に判断する

1921 ワード

  • ブラウザのタイプとバージョンはどう判断しますか?JavaScriptの内蔵対象navigatorの属性userAgentの値を使って判断します.navigatorはjavascriptの内蔵オブジェクトで、通常はブラウザとオペレーティングシステムのバージョンを検出するために使用されます.よく使う属性は
  • appCodeName-ブラウザコード名の文字列表示
  • appName-公式ブラウザ名の文字列は
  • を表しています.
  • appVersion-ブラウザバージョン情報の文字列表示
  • cookie Enbaled-cookieを有効にしてtrueに戻ります.そうでなければfalse
  • に戻ります.
  • java Enbaled-javaを有効にするとtrueに戻ります.そうしないとfalse
  • に戻ります.
  • plotform-ブラウザがあるコンピュータプラットフォームの文字列表示
  • plugins-ブラウザにインストールされたプラグイン配列
  • taintEnbaled-データ汚点を有効にしてtrueに戻すと、false
  • に戻ります.
  • userAgent-ユーザエージェントヘッダの文字列表示(ブラウザバージョン情報などを含む文字列)
  • js正規表現
    var str = "123123";
    var reg = /123/;
    alert(reg.test(str));
    以上の部分は、strという文字列に123という文字列が含まれているかどうかを検出する.
  • 本題に入り、直接コード(ExtJsはこのように判断します)
  •  
    var ua = navigator.userAgent.toLowerCase();
    function check(r){
      return r.test(ua);
    }
    /**
     * return IE,IE6,IE7,IE8,IE9,Chrome,Firefox,Opera,WebKit,Safari,Others
    */
    function getBrowserName()
    {
      var browserName;
      var isOpera = check(/opera/);
      var isChrome = check(/chrome/);
      var isFirefox = check(/firefox/);
      var isWebKit = check(/webkit/);
      var isSafari = !isChrome && check(/safari/);
      var isIE = !isOpera && check(/msie/);
      var isIE7 = isIE && check(/msie 7/);
      var isIE8 = isIE && check(/msie 8/);
      if(isIE8)
      {
        browserName = "IE8";  
      }else if(isIE7)
      {
        browserName = "IE7";
      }else if(isIE)
      {
        browserName = "IE";
      }else if(isChrome)
      {
        browserName = "Chrome";
      }else if(isFirefox)
      {
        browserName = "Firefox";
      }else if(isOpera)
      {
        browserName = "Opera";
      }else if(isWebKit)
      {
        browserName = "WebKit";
      }else if(isSafari)
      {
        browserName = "Safari";
      }else
      {
        browserName = "Others";
      }
      return browserName;
    }