2012-12-08 114 views
1

我从来没有使用Javascript,所以它有点混乱。我对HTML有一些体面的认识,还有一些在C#中。加载HTML页面(JavaScript)

无论如何...我正在建立一个网站,我正在尝试做一个脚本,打开一个不同的HTML文档,如果它是例如Chrome,Internet Explorer等。事情是我不知道如何为每次检测加载特定的html文档。我已经有了一个脚本,可以检测到您使用的浏览器类型。

代码:

<script language="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: "Microsoft Internet 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(); 
</script> 
+4

作为一个旁注,罢工,作为一个大笔记,基于浏览器做东西被认为是不好的做法,并且往往会导致很多问题。特征检测几乎总是要走的路。 – adeneo

回答

0

您可以使用jQuery.get():

$.get('test.html', function(data) { 
    $('.result').html(data); 
    alert('Load was performed.'); 
}); 

欲了解更多信息,请参见:http://api.jquery.com/jQuery.get/

0

有多种方法,每个人都有自己的优点和缺点。
但正如评论,这是不是一个很好的做法“基于浏览器做东西”。

1阿贾克斯:
您可以使用ajax动态加载基于浏览器的HTML内容。

2.重定向
根据浏览器重定向到正确的页面。

3.使用CSS来显示正确的内容
可以隐藏所有不相关的信息(使用显示:无/ visibility:hidden的) 和显示基于浏览器正确的。