微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用jQuery检测浏览器是否为Chrome?

如何解决如何使用jQuery检测浏览器是否为Chrome?

| 我在chrome中运行的功能在Safari和两个webkit浏览器中均能正常工作时遇到了一些问题... 我需要为Chrome(而非Safari)自定义函数中的变量。 可悲的是,我一直在使用它来检测它是否是一个Webkit浏览器:
if ($.browser.webkit) {
但是我需要检测:
if ($.browser.chrome) {
有什么办法可以写出类似的陈述(上述陈述的有效版本)?     

解决方法

        
$.browser.chrome = /chrom(e|ium)/.test(navigator.userAgent.toLowerCase()); 

if($.browser.chrome){
  ............

}
更新:(10倍@ Bacciagalupe先生) jQuery已从1.9及其最新版本中删除了ѭ3removed。 但是您仍然可以将$ .browser用作独立插件,在此处找到     ,        
if(/chrom(e|ium)/.test(navigator.userAgent.toLowerCase())){
 alert(\'I am chrome\');
}
    ,        这个问题已经在这里讨论:JavaScript:如何确定用户浏览器是否是Chrome? 请尝试以下方法:
var isChromium = window.chrome;
if(isChromium){
    // is Google chrome 
} else {
    // not Google chrome 
}
但是,由于IE11,IE Edge和Opera还将以ѭ7的形式返回
true
,因此将给出更完整和准确的答案。 因此,使用以下内容:
// please note,// that IE11 now returns undefined again for window.chrome
// and new Opera 30 outputs true for window.chrome
// but needs to check if window.opr is not undefined
// and new IE Edge outputs to true now for window.chrome
// and if not iOS Chrome check
// so use the below updated condition
var isChromium = window.chrome;
var winNav = window.navigator;
var vendorName = winNav.vendor;
var isOpera = typeof window.opr !== \"undefined\";
var isIEedge = winNav.userAgent.indexOf(\"Edge\") > -1;
var isIOSChrome = winNav.userAgent.match(\"CriOS\");

if (isIOSChrome) {
   // is Google Chrome on IOS
} else if(
  isChromium !== null &&
  typeof isChromium !== \"undefined\" &&
  vendorName === \"Google Inc.\" &&
  isOpera === false &&
  isIEedge === false
) {
   // is Google Chrome
} else { 
   // not Google Chrome 
}
以上文章建议使用jQuery.browser。但是jQuery API建议不要使用此方法。(请参阅API中的DOCS)。并指出其功能可能会在jQuery的未来版本中转移到团队支持的插件中。 jQuery API建议使用
jQuery.support
。 原因是\'jQuery.browser \'使用了可以被欺骗的用户代理,并且在更高版本的jQuery中实际上已弃用该代理。如果您真的想使用$ .browser ..,这是指向独立jQuery插件的链接,因为它已从jQuery 1.9.1版中删除。 https://github.com/gabceb/jquery-browser-plugin 最好使用特征对象检测而不是浏览器检测。 另外,如果您使用Google Chrome浏览器检查器并转到控制台标签。输入\'window \',然后按Enter。然后,您可以查看“窗口对象”的DOM属性。折叠对象时,您可以查看所有属性,包括\'chrome \'属性。 我希望这会有所帮助,即使问题是如何使用jQuery。但是有时候,简单的javascript更简单!     ,        用户Endless是对的,
$.browser.chrome = (typeof window.chrome === \"object\"); 
代码最适合使用jQuery检测Chrome浏览器。 如果您使用IE并将GoogleFrame添加为插件,则
var is_chrome = /chrome/.test( navigator.userAgent.toLowerCase() );
代码将被视为Chrome浏览器,因为GoogleFrame插件会修改navigator属性并在其中添加chromeframe。     ,        
var is_chrome = /chrome/.test( navigator.userAgent.toLowerCase() );
    ,        可以更改userAgent。为了更强大,请使用chrome指定的全局变量
$.browser.chrome = (typeof window.chrome === \"object\");
    ,        
if(navigator.vendor.indexOf(\'Goog\') > -1){
  //Your code here
}
    ,        虽然它不是Jquery,但我自己使用jquery,但是为了浏览器检测,我已经多次使用了此页面上的脚本。它会检测所有主要浏览器,然后再检测一些。这项工作几乎已经为您完成。     ,        遗憾的是,当Opera中的测试返回true时,由于Opera的最新更新
!!window.chrome
(以及对窗口对象的其他测试)。 Conditionizr会为您解决此问题并解决Opera问题:
conditionizr.add(\'chrome\',[],function () {
    return !!window.chrome && !/opera|opr/i.test(navigator.userAgent);
});
我强烈建议您使用它,因为上述所有方法均无效。 这使您可以执行以下操作:
if (conditionizr.chrome) {...}
Conditionizr负责其他浏览器的检测,并且比jQuery hacks更快,更可靠。     ,        作为快速补充,令我惊讶的是没有人想到这一点,您可以使用
in
运算符:
\"chrome\" in window
显然,这不是使用JQuery,但我认为我会把它放进去,因为它在不使用任何外部库的时候很方便。     ,        当我测试答案@IE时,总是得到“ true”。更好的方法是也可以在@IE下运行:
var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
如此答案中所述: https://stackoverflow.com/a/4565120/1201725     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。