如何检测chrome和safari浏览器(webkit)

新手上路,请多包涵

我正在尝试使用 jquery 或 javascript 检测 chrome 和 safari 浏览器。我认为我们不应该使用 jQuery.browser。这里有什么建议吗?非常感谢!

原文由 Rouge 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 456
2 个回答

如果您不想使用 $.browser ,请查看 案例 1 ,否则 案例 23 可能会帮助您 了解情况,因为不建议使用 $.browser (可以使用此欺骗用户代理)。另一种方法是使用 jQuery.support 它将检测功能支持而不是代理信息。

但…

如果您坚持获取浏览器类型 (仅 Chrome 或 Safari) 但不使用 $.browser情况 1 就是您要找的……


这符合您的要求:

案例 1:( 没有 jQuery 也没有 $.browser,只有 javascript)

现场演示:http: //jsfiddle.net/oscarj24/DJ349/

 var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
var isSafari = /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);

if (isChrome) alert("You are using Chrome!");
if (isSafari) alert("You are using Safari!");


这些案例我以前用过,效果很好,但不推荐使用……

案例 2:( 使用 jQuery 和 $.browser,这个很棘手)

现场演示:http: //jsfiddle.net/oscarj24/gNENk/

 $(document).ready(function(){

    /* Get browser */
    $.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());

    /* Detect Chrome */
    if($.browser.chrome){
        /* Do something for Chrome at this point */
        /* Finally, if it is Chrome then jQuery thinks it's
           Safari so we have to tell it isn't */
        $.browser.safari = false;
    }

    /* Detect Safari */
    if($.browser.safari){
        /* Do something for Safari */
    }

});

案例 3:( 使用 jQuery 和 $.browser,“优雅”的解决方案)

现场演示:http: //jsfiddle.net/oscarj24/uJuEU/

 $.browser.chrome = $.browser.webkit && !!window.chrome;
$.browser.safari = $.browser.webkit && !window.chrome;

if ($.browser.chrome) alert("You are using Chrome!");
if ($.browser.safari) alert("You are using Safari!");

原文由 Oscar Jara 发布,翻译遵循 CC BY-SA 3.0 许可协议

这里的大多数答案都已过时,不再有 jQuery.browser ,为什么有人甚至会使用 jQuery 或嗅探 User Agent 超出了我的范围。

与其检测浏览器,不如检测一个 功能

(无论是否支持)。

以下是 Mozilla FirefoxMicrosoft Edge 中的 false ;它是 true谷歌浏览器 中。

 "webkitLineBreak" in document.documentElement.style

请注意,这不是面向未来的。 浏览器可以在未来的任何时候实施 -webkit-line-break 属性,从而导致错误检测。然后,您只需查看 Chrome 中的文档对象并选择带有 webkit 前缀的任何内容,并检查其他浏览器中是否缺少该对象。

原文由 vsync 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题