可以使用 JavaScript 检查打开当前页面的浏览器。
navigator 对象的userAgent属性用于返回浏览器发送的 user-agent 头字符串。此用户代理字符串包含有关浏览器的信息,其中包含可以测试其存在的某些关键字。
可以使用indexOf()方法检测特定用户字符串的存在。 indexOf() 方法用于返回指定字符串值在字符串的第一次出现。如果该值没有出现在字符串,则返回“-1”。
使用navigator.userAgent属性访问浏览器的用户代理字符串,然后将其存储在变量中。这个用户代理字符串浏览器字符串的存在被一一检测。
- 检测Chrome浏览器:Chrome浏览器的用户代理为“Chrome”。此值传递给 indexOf() 方法以检测用户代理字符串中的此值。
由于 indexOf() 方法将返回一个大于“-1”的值来表示搜索成功,因此“大于”运算符用于返回一个关于搜索是否成功的布尔值。这是为以下所有测试完成的。
// Detect Chrome let chromeAgent = userAgentString.indexOf("Chrome") > -1;
- 检测Internet Explorer 浏览器: Internet Explorer 浏览器的用户代理为“MSIE”或“rv:”。这两个值都传递给 indexOf() 方法以检测用户代理字符串中的这个值,并且它们的结果与 OR运算符。
// Detect Internet Explorer let IExplorerAgent = userAgentString.indexOf("MSIE") > -1 || userAgentString.indexOf("rv:") > -1;
- 检测火狐浏览器:火狐浏览器的用户代理是“火狐”。此值传递给 indexOf() 方法以检测用户代理字符串中的此值。
// Detect Firefox let firefoxAgent = userAgentString.indexOf("Firefox") > -1;
- 检测Safari浏览器:Safari浏览器的用户代理是“Safari”。此值传递给 indexOf() 方法以检测用户代理字符串中的此值。
对于 Safari 浏览器,需要进行一项额外检查,因为 Chrome 浏览器的用户代理还包括 Safari 浏览器的用户代理。如果 Chrome 和 Safari 的用户代理都在用户代理中,则表示浏览器是 Chrome,因此 Safari 浏览器值被丢弃。
// Detect Safari let safariAgent = userAgentString.indexOf("Safari") > -1; // Discard Safari since it also matches Chrome if ((chromeAgent) && (safariAgent)) safariAgent = false;
- 检测Opera浏览器:Opera浏览器的用户代理是“OP”。此值传递给 indexOf() 方法以检测用户代理字符串中的此值。
对于此浏览器,还需要进行一项额外检查,因为 Opera 浏览器的用户代理还包括 Chrome 浏览器的用户代理。如果 Chrome 和 Opera 的用户代理都在用户代理中,则表示浏览器是 Opera,因此丢弃 Chrome 浏览器值。
// Detect Opera let operaAgent = userAgentString.indexOf("OP") > -1; // Discard Chrome since it also matches Opera if ((chromeAgent) && (operaAgent)) chromeAgent = false;
例子:
How to detect Safari, Chrome, IE, Firefox
and Opera browser using JavaScript?
GeeksforGeeks
How to detect Safari, Chrome, IE, Firefox
and Opera browser using JavaScript?
Click on the button to detect
the current browser
Is Safari?
Is Chrome?
Is Internet Explorer?
Is Firefox?
Is Opera browser?
输出:
- Chrome浏览器输出:
- Firefox 浏览器上的输出:
- Opera 浏览器上的输出: