1

我将如何通过使用功能检测来检测浏览器是否是 firefox,即(但不是 ie6)、opera、chrome 或 safari?

4

3 回答 3

4

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

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

if(ActiveXObject) { ... }

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

一个更有用的例子可能是遍历节点列表时的文本节点检查。

if (!el.tagName || el.tagName != expectedTagName)
    el = el.nextSibling;    // skip the text node
于 2010-02-10T02:03:26.660 回答
0

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

于 2010-04-12T00:03:26.583 回答
0

我正在寻找答案,想也许有人已经解决了我的问题。像许多人一样,我最终写了自己的:

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

当然,您会想要自定义您的实现。我的示例仅显示基本逻辑。!

于 2013-04-30T17:47:35.073 回答