JavaScript:仅在不是Google Chrome浏览器的情况下执行代码

时间:2012-12-20 16:00:37

标签: javascript jquery html css google-chrome

  

可能重复:
  Safe feature-based way for detecting Google Chrome with Javascript?
  Using Javascript to detect Google Chrome to switch CSS

是否有声明可以与javascript一起使用,只有在用户使用浏览器 其他 而不是谷歌浏览器时才执行代码?

4 个答案:

答案 0 :(得分:11)

var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;

if(!is_chrome)
{
//do stuff
}  

编辑:不确定这将如何影响Chrome移动浏览器。

第二次编辑: 这在Microsoft Edge中引发了误报,以下代码是更新版本:

var is_chrome = (typeof window.chrome === "object" && navigator.appVersion.indexOf('Edge') === -1)

答案 1 :(得分:7)

当然,我有时会使用这个javascript来检查浏览器支持。

var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/
var IE7 = (document.all && !window.opera && window.XMLHttpRequest && navigator.userAgent.toString().toLowerCase().indexOf('Trident/4.0') == -1) ? true : false;
var IE8 = (navigator.userAgent.toString().toLowerCase().indexOf('trident/4.0') != -1);
var IE9 = (navigator.userAgent.toString().toLowerCase().indexOf('trident/5.0') != -1);
var SAFARI = (navigator.userAgent.toString().toLowerCase().indexOf("safari") != -1) && (navigator.userAgent.toString().toLowerCase().indexOf("chrome") == -1);
var FIREFOX = (navigator.userAgent.toString().toLowerCase().indexOf("firefox") != -1);
var CHROME = (navigator.userAgent.toString().toLowerCase().indexOf("chrome") != -1);
var ANDROID= (navigator.appVersion.toString().indexOf("Android", 0)!=-1)
var MOBILE_SAFARI = ((navigator.userAgent.toString().toLowerCase().indexOf("iphone")!=-1) || (navigator.userAgent.toString().toLowerCase().indexOf("ipod")!=-1) || (navigator.userAgent.toString().toLowerCase().indexOf("ipad")!=-1)) ? true : false;

你的javascript中的变量使用if语句。

答案 2 :(得分:4)

检查window.chrome属性是检测Chrome的一种相当好的方法,而不依赖于用户代理字符串:

if(typeof window.chrome != "object") {
    // not Chrome
} else {
    // it's Chrome (or some fork of Chromium)
}

答案 3 :(得分:0)

虽然这个问题的其他答案都有效,但我会警告你反对依赖“浏览器嗅探”除非绝对必要。查看:http://www.sitepoint.com/why-browser-sniffing-stinks/

相反,您可以使用Modernizr等便捷工具来检测客户端是否支持单个功能。