我正在尝试使用 jquery 或 javascript 检测 chrome 和 safari 浏览器。我认为我们不应该使用 jQuery.browser。这里有什么建议吗?非常感谢!
原文由 Rouge 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在尝试使用 jquery 或 javascript 检测 chrome 和 safari 浏览器。我认为我们不应该使用 jQuery.browser。这里有什么建议吗?非常感谢!
原文由 Rouge 发布,翻译遵循 CC BY-SA 4.0 许可协议
这里的大多数答案都已过时,不再有 jQuery.browser
,为什么有人甚至会使用 jQuery 或嗅探 User Agent
超出了我的范围。
与其检测浏览器,不如检测一个 功能
(无论是否支持)。
以下是 Mozilla Firefox 、 Microsoft Edge 中的 false
;它是 true
在 谷歌浏览器 中。
"webkitLineBreak" in document.documentElement.style
请注意,这不是面向未来的。 浏览器可以在未来的任何时候实施 -webkit-line-break
属性,从而导致错误检测。然后,您只需查看 Chrome 中的文档对象并选择带有 webkit
前缀的任何内容,并检查其他浏览器中是否缺少该对象。
原文由 vsync 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答897 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
如果您不想使用
$.browser
,请查看 案例 1 ,否则 案例 2 和 3 可能会帮助您 了解情况,因为不建议使用$.browser
(可以使用此欺骗用户代理)。另一种方法是使用jQuery.support
它将检测功能支持而不是代理信息。但…
如果您坚持获取浏览器类型 (仅 Chrome 或 Safari) 但不使用
$.browser
, 情况 1 就是您要找的……这符合您的要求:
案例 1:( 没有 jQuery 也没有 $.browser,只有 javascript)
现场演示:http: //jsfiddle.net/oscarj24/DJ349/
这些案例我以前用过,效果很好,但不推荐使用……
案例 2:( 使用 jQuery 和 $.browser,这个很棘手)
现场演示:http: //jsfiddle.net/oscarj24/gNENk/
案例 3:( 使用 jQuery 和 $.browser,“优雅”的解决方案)
现场演示:http: //jsfiddle.net/oscarj24/uJuEU/