2011-03-24 74 views

回答

3

你可以做浏览器检测像已经被别人回答,但功能检测可能是更好的路可走。

你可以通过阅读这篇文章得到一些启示:Browser detection versus feature detection

也了解浏览器检测缺陷的位置:https://developer.mozilla.org/en/Browser_Detection_and_Cross_Browser_Support

你也可以阅读更多有关特征检测在这里:http://michaux.ca/articles/feature-detection-state-of-the-art-browser-scripting

最后你可以使用的Modernizr库的位置:http://www.modernizr.com/

+0

+1,版本== X只是要求麻烦! (和过去的爆炸) – Flexo 2011-03-24 15:06:18

+1

+1。功能检查是尽可能的方法,因为一旦它们支持您需要的功能,您的代码就可以在其他浏览器上无缝工作。 – 2011-03-24 15:08:34

2
var running_chrome_11 = navigator.userAgent.toLowerCase().indexOf('chrome/11') > -1; 

这将是真或假。

不过的建议,这是highy建议要检查的当前特征,而不是版本号。一个例子可能是:

如果(window.localStorage)使用jQuery {// 可以运行本地存储 }

+5

这不符合Chrome 12(大概会运行与Chrome 11相同的代码),但它会与Chrome 110匹配。最好解析出整个数字,然后将其与数字进行比较,而不是使用字符串检查。 – 2011-03-24 15:05:55

2

if ($.browser.chrome && $.browser.version == 11) 
+1

我想知道当Chrome 12发布时会发生什么...... – Flexo 2011-03-24 15:05:37

+0

这个问题说“只适用于chrome 11”,但如果你愿意,你可以使用> = 11作为浏览器版本。 – rucsi 2011-03-24 15:44:12

+0

铬数通常是类似于27.002.3525.34 ..所以你可能需要解析出第一个。这样的事情︰if($。browser.chrome && parseInt($。browser.version.split('。')[0])> = 25){//在这里做魔术}注意这个$ .browser的东西不是在默认的jquery包,所以你需要添加一些插件。以下是更多信息:http://api.jquery.com/jQuery.browser/ – dsomnus 2013-07-08 19:54:47

1
parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2]) >= 11 
+0

parseInt(navigator.userAgent.match(/ Chrom(e | ium | eframe)\ /([0-9] +)\ ./ i) )[2]) 铬帧检测太 – 2012-08-03 18:02:11

+0

当不匹配“铬”的子串,该代码生成中的所有非Chrome浏览器的异常。像这样:null [2]。 – Dan 2015-05-07 22:11:45

相关问题