如何在 javascript 中识别 Safari 版本? [复制]

Posted

技术标签:

【中文标题】如何在 javascript 中识别 Safari 版本? [复制]【英文标题】:How can I recognize Safari version in javascript? [duplicate] 【发布时间】:2017-01-15 07:07:36 【问题描述】:

我可以在 js 或 jQuery 中识别 Safari 浏览器的版本吗?我不是在寻找 webkit 版本,而是在寻找 Safari 的版本(例如:5.1.7)。

我需要为 Safari 隐藏一些低于 v7 的元素 :(

【问题讨论】:

safari 5.1 没有实现FileReader ...但您的问题很广泛...您说“例如 5.1.7”然后说“小于 7”...使用特征检测不要专注于确定一个版本 【参考方案1】:

这个 hack 是通过结合多个其他 hack 得出的,适用于 6.1+:

/* Safari 6.1+(9.0 是目前 Safari 的最新版本)*/

@media screen and (min-color-index:0) 
and(-webkit-min-device-pixel-ratio:0)  @media

    .safari_only  

        color:#0000FF; 
        background-color:#CCCCCC; 

    

以下是区分 6.1-7.0 和 7.1+ 的技巧 为了获得正确的结果,这些还需要多种技巧的组合:

/* Safari 6.1-7.0 */

@media screen and (-webkit-min-device-pixel-ratio:0) 
and (min-color-index:0)
  
   .safari_only (;

      color:#0000FF; 
      background-color:#CCCCCC; 

    );

这是 Safari 8 及更高版本的一个:

/* Safari 7.1+(9.0 是目前 Safari 的最新版本)*/

_::-webkit-full-page-media, _:future, :root .safari_only 

  color:#0000FF; 
  background-color:#CCCCCC; 


参考这个链接: https://jeffclayton.wordpress.com/2015/04/28/css-hacks-for-safari-6-1-7-and-8-not-chrome/

【讨论】:

【参考方案2】:

使用

if(speechSynthesis)
  //code to be run in Safari 7+
else
  //code not to be run in said versions

这应该可以工作,因为 speechSynthesis 是在版本 7 中添加的。

来源:http://CanIUse.com/#compare=safari+6.1,safari+7

【讨论】:

以上是关于如何在 javascript 中识别 Safari 版本? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在Javascript中检测Safari 10浏览器?

在本机 safari 应用程序扩展中,我们如何使用 swift 的参数调用 javascript 函数?

如何在移动 Safari 中使用 javascript 突出显示文本选择

如何使用 Javascript 在移动 Safari 和所有其他浏览器上录制音频?

如果在 iOS 9+ 上的 Safari 中手机上安装了应用程序,如何从 Javascript 检查?

如何使用 JavaScript 单击 Safari 移动设备上的按钮?