我有这个javascript函数,它应该在chrome中打开一个不同于其他浏览器的div。正确的div在firefox,Internet Explorer,safari和chrome中打开,但是opera会打开chrome div而不是其他div。有没有办法阻止Opera执行chrome功能?
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';
}
}
答案 0 :(得分: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;
答案 1 :(得分: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()以保持干净和微妙。