2013-07-01 93 views
0

我有這個JavaScript來檢測瀏覽器,但它不能在IE9中工作。我找到了幾個例子,但不能使它與我的代碼一起工作。是否有人可以提醒我,以便它可以在所有瀏覽器中正常工作。因特網探索瀏覽器檢測

<!doctype html> 
<!--[if lt IE 7 ]> <html class="ie6"> <![endif]--> 
<!--[if IE 7 ]> <html class="ie7"> <![endif]--> 
<!--[if IE 8 ]> <html class="ie8"> <![endif]--> 
<!--[if IE 9 ]> <html class="ie9"> <![endif]--> 
<!--[if (gt IE 9)|!(IE)]><!--> <html class=""> <!--<![endif]--> 
<head> 

的Javascript

var BrowserDetect = { 
    init: function() { 
      this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; 
      this.version = this.searchVersion(navigator.userAgent) 
        || this.searchVersion(navigator.appVersion) 
        || "an unknown version"; 
      this.OS = this.searchString(this.dataOS) || "an unknown OS"; 
    }, 
    searchString: function (data) { 
      for (var i=0;i<data.length;i++) { 
        var dataString = data[i].string; 
        var dataProp = data[i].prop; 
        this.versionSearchString = data[i].versionSearch || data[i].identity; 
        if (dataString) { 
          if (dataString.indexOf(data[i].subString) != -1) 
            return data[i].identity; 
        } 
        else if (dataProp) 
          return data[i].identity; 
      } 
    }, 
    searchVersion: function (dataString) { 
      var index = dataString.indexOf(this.versionSearchString); 
      if (index == -1) return; 
      return parseFloat(dataString.substring(index+this.versionSearchString.length+1)); 
    }, 
    dataBrowser: [ 
      { 
        string: navigator.userAgent, 
        subString: "Chrome", 
        identity: "Chrome" 
      }, 
      {  string: navigator.userAgent, 
        subString: "OmniWeb", 
        versionSearch: "OmniWeb/", 
        identity: "OmniWeb" 
      }, 
      { 
        string: navigator.vendor, 
        subString: "Apple", 
        identity: "Safari", 
        versionSearch: "Version" 
      }, 
      { 
        prop: window.opera, 
        identity: "Opera", 
        versionSearch: "Version" 
      }, 
      { 
        string: navigator.vendor, 
        subString: "iCab", 
        identity: "iCab" 
      }, 
      { 
        string: navigator.vendor, 
        subString: "KDE", 
        identity: "Konqueror" 
      }, 
      { 
        string: navigator.userAgent, 
        subString: "Firefox", 
        identity: "Firefox" 
      }, 
      { 
        string: navigator.vendor, 
        subString: "Camino", 
        identity: "Camino" 
      }, 
      {    // for newer Netscapes (6+) 
        string: navigator.userAgent, 
        subString: "Netscape", 
        identity: "Netscape" 
      }, 
      { 
        string: navigator.userAgent, 
        subString: "MSIE", 
        identity: "Explorer", 
        versionSearch: "MSIE" 
      }, 
      { 
        string: navigator.userAgent, 
        subString: "Gecko", 
        identity: "Mozilla", 
        versionSearch: "rv" 
      }, 
      {    // for older Netscapes (4-) 
        string: navigator.userAgent, 
        subString: "Mozilla", 
        identity: "Netscape", 
        versionSearch: "Mozilla" 
      } 
    ], 
    dataOS : [ 
      { 
        string: navigator.platform, 
        subString: "Win", 
        identity: "Windows" 
      }, 
      { 
        string: navigator.platform, 
        subString: "Mac", 
        identity: "Mac" 
      }, 
      { 
         string: navigator.userAgent, 
         subString: "iPhone", 
         identity: "iPhone/iPod" 
     }, 
      { 
        string: navigator.platform, 
        subString: "Linux", 
        identity: "Linux" 
      } 
    ] 

}; BrowserDetect.init();

回答

0

檢查.ie9類,該類添加到您的<html>元素中。

編輯使用的hasClass代替length

if ($("html").hasClass("ie9")) { 

} 
+0

感謝您的評論。至於javascript,我有正確的語法嗎? – user1781367

+2

'.length'不是一個函數。使用'.hasClass()'更清潔。 '$( 「HTML」)。hasClass( 「IE9」)'。或'$(「html」)。(「。ie9」)'稍微短一些。 –

+0

糟糕,你是對的,編輯反思。 – potench

0

爲了檢測MSIE(V6 - V7 - V8 - V9 - V10 - V11)輕鬆

if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) { 
    // MSIE 
} 
0
function runvlc(){ 
if (navigator.userAgent.toLowerCase().indexOf("msie")!==-1|| 
(navigator.appVersion.indexOf('Trident/') > 0)){ 
alert('iexplorer') 
} 
else if (navigator.userAgent.toLowerCase().indexOf("msie")==-1){ 
alert('others') 
} 
}; 

這一個工程。