2

I have this javascript function that's supposed to open a different div in chrome than in other browsers. The proper div opens in firefox, internet explorer, safari, and chrome, but opera opens the chrome div instead of the other div. Is there a way to stop opera from performing the chrome function?

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

      if (is_chrome) {
        document.getElementById('chrome').style.display = 'block';
        document.getElementById('notchrome').style.display = 'none';
}
  }
4

2 回答 2

3

如果您阅读此处,您会看到您可以查找 OPR 字符串来识别 Opera。

http://my.opera.com/ODIN/blog/2013/07/15/opera-user-agent-strings-opera-15-and-beyond

例如,您可以将其包含在您的测试中,如下所示:

var userAgent = navigator.userAgent.toLowerCase();
var is_chrome = userAgent.indexOf('chrome') > -1 && userAgent.indexOf('opr/') == -1;
于 2013-10-23T03:54:36.747 回答
0

不要冒犯你。但是,我认为,如果您检查它是否只有 chrome 而不是 opera,那么在 chrome 平台上构建的其他自定义浏览器会中断。以中文QQ浏览器为例。

相反,您可以检查用户代理中是否包含“Chrome”并且 navigator.vendor 是否包含“Google Inc.”。这可以精确地为您提供镀铬。

var isChrome = navigator.userAgent.toLowerCase().search('chrome') != -1 && navigator.vendor.toLowerCase().search('google') != -1;

我使用 toLowerCase() 来保持干净和微妙。

于 2015-03-31T02:02:32.713 回答