【问题标题】:How to get a name of browser by using JavaScript? [duplicate]如何使用 JavaScript 获取浏览器的名称? [复制]
【发布时间】:2011-10-15 06:29:19
【问题描述】:

可能重复:
Reliable browser detection with javascript?

如何使用 JavaScript 获取浏览器的名称?

我希望只看到像 Firefox、Chrome、Safari 等这样的名称。

【问题讨论】:

  • 这是不好的做法。不要这样做
  • 我明白为什么它重复了......你为什么不再读一遍我要求的?忘了它!我发现解决方案可以做到这一点 ------ > quirksmode.org/js/detect.html

标签: javascript jquery


【解决方案1】:

看看jQuery.browser,但是阅读警告,最好是检测特征。你想达到什么目的?

【讨论】:

    【解决方案2】:

    如果您确定您需要它:jQuery.browser。保证你只会把它作为最后的手段。

    【讨论】:

    • -1 不推荐 jQuery.browser 在以后的版本中会弃用。这应该被使用。
    • @Raynos -- 你真的读过我的回答吗?听起来我是不是向您推荐 jQuery.browser?而且,我们会指出明显的东西吗,它没有被弃用,他们只是建议反对它就像我做的那样!咕噜。
    • 直接来自文档“The $.browser property is deprecated in jQuery 1.3”我认为即使提及已弃用的功能也不好。
    • 我假设您反对它,因为用户代理检测通常是一个坏主意,而不是因为 jQuery 已弃用它。
    • live docs 不要说已弃用。 使用jQuery.browser的原因与发布时间表无关,它只是诱使您走“如果这个浏览器,就这样做;如果那个浏览器,做其他事情”的路径,即陷阱。有时,您只想使用浏览器的名称来做一些事情:记录、测试、对用户说:“嘿,什么样的白痴在使用 Internet Explorer?” jQuery.browser 对此非常有用。
    【解决方案3】:

    没有办法以跨浏览器的方式自信地“获取”名称。

    您能做的最好的事情就是在window.navigator.userAgent 上使用正则表达式并希望未来的浏览器不会破坏它。

    但是userAgent 是一团糟。不要碰它。

    W3C 声称

    窗口。导航器。应用名称 返回浏览器的名称。

    这是错误的,因为 chrome 中的 window.navigator.appName 返回 "NetScape"

    `Navigator 对象在浏览器中的实现非常糟糕

    浏览器不检测

    【讨论】:

    • 这不提供问题指定的“仅名称”。
    • 这不是迂腐,从用户代理中提取浏览器名称并不是一件容易的事(至少对于他们提出此类问题的级别的人来说不是)。
    • @Quentin 你是对的。但由于我不喜欢 userAgent 嗅探,我不会向他展示一个正则表达式来做到这一点:)
    • 浏览器检测有点被高估了。它的功能很好,但是很多功能在 IE 中都被破坏了。没有可靠的方法来测试是否损坏,您只需要“哦,这是 IE,CORS 无法正常工作”或“哦,这是 IE,缓存无法正常工作”或“哦,这是 IE,盒子模型不能正常工作或“哦,这是 IE,垃圾收集 不能正常工作”
    猜你喜欢
    • 2014-06-20
    • 2014-05-16
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多