2010-02-10 64 views
1

如何使用功能检测来检测浏览器是否是Firefox,ie(但不是ie6),opera,chrome或safari?jquery 1.4的功能检测

+1

你想确定什么? “功能检测”用来表示,如果它支持这一点,那么做到这一点,如果不是,则后备...关键是不关心哪个浏览器。鉴于此,你确定浏览器是什么? – 2010-02-10 02:00:48

+0

谢谢,那么我可能会以错误的方式去解决这个问题。但是,如果有人不使用上述网站之一,我被告知要在网站上发出警告。我认为JS可能是这样做的一种方式,但$ .browser被弃用,我认为功能检测可能会解决这个问题。 – Colin 2010-02-10 02:30:56

+0

如果您的要求声明您必须包含“旧浏览器”通知,则应该使用'$ .browser'或服务器端代码检查用户代理。特征检测不是检测浏览器的可靠方法。 – Joel 2010-02-10 02:57:40

回答

4

功能检测不应该告诉您用户正在使用哪个浏览器。它旨在告诉您浏览器是否可以处理您需要执行的操作。

因此,举例来说,如果你需要支持ActiveX,您可以检查

if(ActiveXObject) { ... } 

这比检查更好,如果浏览器是IE,因为一些其他的浏览器(当前或未来)可能支持ActiveX过。

更有用的示例可能是在遍历节点列表时进行文本节点检查。

if (!el.tagName || el.tagName != expectedTagName) 
    el = el.nextSibling; // skip the text node 
0

对于Safari浏览器:我要去服务器端路由,即使用Chris Schuld的Browser.php;除了http用户代理之外,关于Safari功能检测的文档很少。

0

我正在寻找答案,也许有人解决了我的问题。 许多人一样,我结束了写我自己:

try { 
     if (ActiveXObject != undefined) { 
      alert("we have activex"); 
    } 
    } 
    catch (err) 
    { 
     alert(err.message); 
    } 

你会的,当然,要自定义您的实现。我的例子只是显示了基本逻辑。 HTH!