我是靠谱客的博主 开心电灯胆,最近开发中收集的这篇文章主要介绍js---判断是否是在safari浏览器中打开,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

【常规的写法】

/Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent);

【正则前瞻】

也可以利用正则前瞻浓缩成一条语句,
其中^是指:只在开头进行一次断言判断。
(?=.Safari)是指进行断言的部分包含.Safari字段,
(?!.Chrome)是指断言判断部分没有.Chrome字段。

/^(?=.Safari)(?!.Chrome)/.test(navigator.userAgent);

【navigator.vendor字段】
另外还可以利用navigator.vendor字段来判断是否是Safari浏览器。
navigator.vendor字段是描述浏览器提供商的字段。在Safari下为Apple。
但是这个字段仅仅适合判断是否是Safari,而且仅适合在PC上判断。

/Apple/.test(navigator.vendor)
【备注】
PC端只有Chrome有Safari字段吗?为什么不需要判断其他浏览器?
其实360,QQ等浏览器的userAgent字段也会带有Safari字段,但是由于他们基于Chrome二次开发的,所有也会携带有Chrome字段。
所以「匹配规则:拥有Safari字段,并且没有Chrome字段」就可以了。


为什么Chrome浏览器的userAgent会有Safari字段?
具体请参考Litten大神的文章
看完你还会知道为什么浏览器的userAgent都带有Mozilla标示。


为什么navigator.vendor字段仅仅适合判断是否是Safari,用于区分Chrome不行吗?
因为PC上基于Chrome进行二次开发的浏览器较多,其vendor字段均为Google,无法唯一判断是否为Chrome浏览器。
但是PC端几乎没有基于Safari开发的浏览器,所以可以唯一判断。

最后

以上就是开心电灯胆为你收集整理的js---判断是否是在safari浏览器中打开的全部内容,希望文章能够帮你解决js---判断是否是在safari浏览器中打开所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部