11

我一直在玩不同的脚本,我发现一个适用于除 Chrome 之外的所有脚本......这是我在 .CSS 文件中一直使用的不同代码。我尝试将浏览器名称设为“Chrome”,但这不起作用。

if (browser == 'Firefox') {
    document.write('<link rel="stylesheet" href="../component/fireFoxdefault.css" />');
}
if (browser == 'Safari') {
    document.write('<'+'link rel="stylesheet" href="../component/default.css" />');
}
4

4 回答 4

36

使用以下方法检测 chrome:

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

来源:http ://davidwalsh.name/detecting-google-chrome-javascript

更新(2015-07-20)

上述解决方案并不总是有效。在这个答案中可以找到更可靠的解决方案(见下文)。话虽如此,我会避免浏览器检测,而是使用特征检测

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

您可以包含一个专门用于 chrome 的 css 文件,如下所示:

if (isChrome) {
    document.write('<'+'link rel="stylesheet" href="../component/chromeDefault.css" />');
}

更新(2014-07-29):

@gillesc 有一个更优雅的建议来检测 Chrome,他在下面的评论中发布了该建议,也可以在这个问题上查看。

var isChrome = !!window.chrome
于 2012-04-20T18:00:34.263 回答
1

这里有两种简单的方法,一种使用 indexOf ,一种使用 test :

// first method 
function check_chrome_ua() {
    var ua = navigator.userAgent.toLowerCase();
    var is_chrome = /chrome/.test(ua);

    return is_chrome;
}

// second method */
function check_chrome_ua2() {
    var ua = navigator.userAgent.toLowerCase();
    var is_chrome = ua.indexOf("applewebkit/") != -1 && ua.indexOf("khtml") > - 1;

    return is_chrome;
}

alert(check_chrome_ua()); // false or true 
alert(check_chrome_ua2()); // false or true

在使用这两个布尔函数之一检查 chrome 是否正在使用后,您可以实现更改样式表的方法。

于 2012-04-20T18:51:59.570 回答
1

iOS 上的 Chrome 更新:Chrome 38(在 iOS 8.1 上测试)在!!window.chrome. 要解决此问题,您可以使用:

function isChrome(){
    var windowChrome = !!window.chrome;
    if(!windowChrome){
        // Chrome iOS specific test
        var pattern = /crios/i;
        return pattern.test(window.navigator.userAgent);
    }else{
        return windowChrome;
    }
}

谷歌关于此事的参考资料

于 2014-11-26T16:06:36.087 回答
-1
var userAgent = navigator.userAgent.toLowerCase(); 
$.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase()); 

// Is this a version of Chrome?
if($.browser.chrome){
  userAgent = userAgent.substring(userAgent.indexOf('chrome/') +7);
  userAgent = userAgent.substring(0,userAgent.indexOf('.'));
  $.browser.version = userAgent;
  // If it is chrome then jQuery thinks it's safari so we have to tell it it isn't
  $.browser.safari = false;
}

// Is this a version of Safari?
if($.browser.safari){
  userAgent = userAgent.substring(userAgent.indexOf('safari/') +7);
  userAgent = userAgent.substring(0,userAgent.indexOf('.'));
  $.browser.version = userAgent;
}
于 2012-04-20T18:11:13.760 回答