在 JavaScript 中判断当前浏览器是否为 Safari 可以通过检查 navigator.userAgent
或 navigator.vendor
来实现。Safari 浏览器的 userAgent
字符串通常包含 "Safari",而 navigator.vendor
在 Safari 中通常为 "Apple Computer, Inc."。以下是一个示例代码:
function isSafari() {
return /^((?!chrome|android).)*safari/i.test(navigator.userAgent) && navigator.vendor.indexOf('Apple') > -1;
}
if (isSafari()) {
console.log('当前浏览器是 Safari');
} else {
console.log('当前浏览器不是 Safari');
}
navigator.userAgent
: 这个属性返回用户代理头的字符串表示(即浏览器用于 HTTP 请求的用户代理字符串)。Safari 的 userAgent
字符串中包含 "Safari"。navigator.vendor
: 这个属性返回浏览器供应商的字符串表示。在 Safari 中,这个值通常是 "Apple Computer, Inc."。userAgent
字符串,导致判断不准确。userAgent
字符串可能会随着版本更新而变化,需要定期检查和更新判断逻辑。如果需要更精确的浏览器检测,可以使用一些成熟的库,如 Bowser 或 UAParser.js,这些库提供了更全面的浏览器和设备检测功能。
// 使用 Bowser 库进行浏览器检测
import Bowser from 'bowser';
const browser = Bowser.getParser(window.navigator.userAgent);
if (browser.getBrowserName() === 'Safari') {
console.log('当前浏览器是 Safari');
} else {
console.log('当前浏览器不是 Safari');
}
通过这些方法,你可以有效地判断当前浏览器是否为 Safari,并根据需要进行相应的处理。
领取专属 10元无门槛券
手把手带您无忧上云