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

2023-12-31

我正在使用

var isSafari = /constructor/i.test(window.HTMLElement)

但它不适用于新的 Safari 10。

关于使用什么有什么建议吗?

Thanks!

edit: 如何检测Safari、Chrome、IE、Firefox和Opera浏览器? https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser仅涵盖 Safari 最高版本 9


我扩展了 Safari 检测线,如中所述如何检测Safari、Chrome、IE、Firefox和Opera浏览器? https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser具有以下内容并将其放置在测试列表的底部:

isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0 || !isChrome && !isOpera && window.webkitAudioContext !== undefined;

在确保网络音频 API 不是 Chrome 或 Opera 后,它基本上会检查网络音频 API 是否使用 webkit 前缀。 (旧版本的 Chrome 和 Opera 也使用此前缀)

我去了caniuse.com http://caniuse.com查看哪些浏览器支持哪些功能,并尝试寻找一种针对 Safari 的突出功能。我可能还可以使用其他功能。 (并且可能有更好的)。

我知道功能检测通常是更好的方法,只是功能检测无法检测该功能是否已损坏或根据浏览器给出不同的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Javascript中检测Safari 10浏览器? 的相关文章

  • 将 Javascript 对象的属性从 string 更改为 int

    我有一个对象数组 每个对象具有三个属性 年份 总计 人均 例子 0 Object per capita 125 8 total 1007 2 year 2009 这些属性是字符串 我想创建一个循环来遍历数组并将它们转换为 int 我尝试了以
  • 显示具有多个父代的 D3 树

    我目前有this http bl ocks org mbostock 4339083图已实现 我希望在描述具有多个父节点的子节点时保持结构和可折叠性 有没有办法做到这一点 我研究了力图 但我也想保留一组层次结构 这意味着 1 级的父级可以有
  • 浏览器视口大小(以设备像素为单位)

    Goal 我希望 Flash 能够获得有关浏览器视口宽度和高度 以设备像素为单位 的准确信息初始化 调整大小或浏览器缩放事件时 规格 我需要将 flash 嵌入到在 chrome safari firefox 等中运行的 html 页面中
  • Firebase,只得到新的孩子[重复]

    这个问题在这里已经有答案了 var firebase new Firebase firebaseRef on child added function snapshot 这将接收所有元素 有没有办法在创建新的 Firebase 引用时不接收
  • 从函数返回函数的目的是什么?

    阅读一些遗留代码 发现 A prototype setSize function var v1 new Vector2 return function size var halfSize v1 copy size multiplyScala
  • 位置特征检测:固定

    我正在尝试找到一个脚本来检测设备是否放置position fixed元素相对于视口而不是整个文档 目前 标准桌面浏览器和 Mobile Safari 适用于 iOS 5 都是这样做的 而 Android 设备则相对于整个文档放置固定元素 我
  • 在版本 4.4.6 中禁用 ckeditor 上下文菜单

    我在 Rails4 项目中使用 ckeditor 我尝试了 ckeditor gem 和 ckeditor rails gem 来提供 ckeditor 库 这里有多个帖子 人们希望删除 ckeditor 上下文菜单 以便可以显示本机浏览器
  • 导航栏下拉菜单(折叠)在 Bootstrap 5 中不起作用

    我在尝试使用以下命令创建响应式菜单或下拉按钮时遇到问题Bootstrap 5一切似乎都正常 导航图标和下拉图标出现 但它不起作用 当我单击nav图标或dropdown按钮 无dropdown menu apears 我想特别提到的是 我还包
  • React autoFocus 将光标设置为输入值的开头

    我有一个受控输入 最初显示一个值 我已将该输入设置为自动聚焦 但当我希望它出现在末尾时 光标出现在输入的开头 我知道这可能是因为自动对焦是在值之前添加的 但我不能 100 确定 在输入字段末尾完成光标初始化的最佳方法是什么 var Test
  • JavaScript推送函数中的动态变量

    我在 JavaScript 中使用推送功能 var chartData for var i 0 i lt 3 i chartData push date new Date year s mon s date s hr s min s sec
  • 如何使用 Javascript 设置查询字符串

    有没有办法使用 javascript 设置查询字符串的值 我的页面有一个过滤器列表 单击该列表时 它将更改右侧的页内结果窗格 我正在尝试更新 url 的查询字符串值 因此如果用户离开页面 然后单击 后退 按钮 他们将返回到最后一个过滤器选择
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • 使用 Google 日历源时如何禁用 FullCalendar 中的活动链接?

    我正在使用 FullCalendar 库从 Google 日历加载日历中的事件 不幸的是 事件添加到日历后 它们是可点击的 当您点击该活动时 您会自动重定向到 Google 日历页面以查看该特定活动 或者如果您有足够的访问权限 则可以直接对
  • JavaScript eval("{}") 返回行为?

    根据ECMA 262 规范 http www ecma international org publications files ECMA ST Ecma 262 pdf 以下语句返回1 eval 1 eval 1 eval 1 var a
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • 使用 next.js 进行服务器端渲染与传统 SSR

    我非常习惯 SSR 意味着页面得到完全刷新并从服务器接收完整 HTML 的方法 其中根据后端堆栈使用 razor pub other 进行渲染 因此 每次用户单击导航链接时 它只会向服务器发送请求 整个页面将刷新 接收新的 HTML 这就是
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green

随机推荐

  • Django ORM原始删除查询不删除记录

    我在用raw sql为了方便我的查询以保持数据库最小化 我正在删除额外的记录 通过这个查询 d is from a loop and has values res MyModel objects raw DELETE FROM mydb m
  • JQuery Ajax 投票

    我正在用这个JQuery Ajax 投票系统指南 http ad1987 blogspot com 2009 02 reddit style voting with php mysql and html作为一个粗略的参考 但我对此的安全性有
  • 如何为 Risc-V(汇编语言)编写旋转操作 我们有像 8086 中那样的命令吗?

    我以前使用过8086的汇编语言 8086中的旋转操作只是一个命令 但我在 Risc V 汇编语言中找不到旋转操作的特定关键字 看起来扩展 B 最终应该定义这样的指令 在那之前你必须使用左移和右移来组合它 这是 MIPS32R2 rotrv
  • 如何从资源中播放WAV音频文件?

    如何从我的项目资源中播放 WAV 音频文件 我的项目是 C 中的 Windows 窗体应用程序 Because mySoundFile is a Stream 你可以利用SoundPlayer的重载构造函数 它接受Stream object
  • 什么是 RWS Monad 以及何时使用它

    我在 mtl 库中查找某些内容时遇到了 RWS Monad 及其 MonadTransformer 那里没有真正的文档 我想知道这是什么以及它在哪里使用 我发现 RWS 是 Reader Writer State 的缩写 它是这三个 mon
  • SELECT ... *FOR UPDATE* 的目的是什么?

    我很困惑你为什么要指定FOR UPDATE 为什么数据库关心你要如何处理来自SELECT 编辑 抱歉 我问的问题很糟糕 我知道文档说它将事情变成 锁定读取 我想知道的是 在哪些情况下 可观察的行为在指定之间会有所不同 FOR UPDATE并
  • 如何在Java中格式化时间间隔?

    我创建 J2SE 应用程序 该应用程序需要将两次以毫秒为单位的时间格式化为表示这两次时间之间间隔的字符串 long time1 1334331041677L Fri Apr 13 17 30 41 CEST 2012 long time2
  • 异步函数调用C++0x

    我正在使用以下代码测试 std async 函数http www justsoftwaresolutions co uk threading multithreading in c 0x part 8 futures and promise
  • WIndows API 中的“L”和“LPCWSTR”

    我发现 NetUserChangePassword 0 0 L ab L cd 将用户密码从 ab 更改为 cd 然而 NetUserChangePassword 0 0 LPCWSTR ab LPCWSTR cd 不起作用 返回值表示密码
  • 什么是“ANSI_X3.4-1968”编码?

    在我的系统上查看以下输出 STEP 101 python3 c import sys print sys stdout encoding ANSI X3 4 1968 STEP 102 STEP 103 locale LANG C LANG
  • 杰克编译花了很长时间

    升级我的项目以启用 Jack 和 Java8 功能后 我的 16GB MacBook 似乎无法再构建我的项目 我看到内存使用量越来越高 但进程总是卡在同一点 我的 Gradle 控制台 Executing tasks app assembl
  • 从 CDI Proxy 获取真实对象

    我寻找一种干净的 CDI 解决方案 而不是依赖于 WELD 的解决方案 但到目前为止一无所获 我需要测试我获得的对象列表中的每个元素是否 Inject Any MyInterfacebeans 是一个代理 当true我需要获取真实的对象进行
  • 在 Linux 中读取 USB 网络摄像头的输出

    我正在用 C 语言尝试一些 fread 和 fwrite 所以我用 C 语言编写了这个小程序 从网络摄像头获取数据并将其转储到文件中 以下为来源 include
  • 重新创建 Apple Watch 健身追踪器“进度”栏 - CAShapeLayer 笔划上的渐变

    我正在编写一个应用程序 可以充分利用 Apple Watch 的健身追踪器设计 如下 到目前为止 我已经创建了基本轮廓 它只是一个带有椭圆 CGPath 的 CAShapeLayer 我使用中风开始和中风结束来动画进度 我的问题出现在对轮廓
  • 如何处理锁(JPA)?

    根据Java 持久 锁定 wiki 书籍 http en wikibooks org wiki Java Persistence Locking Common Locking Mistakes 2C Questions and Proble
  • 如何在jetpack compose中设计多圆形进度条?

    我正在尝试使用 jetpack compose 设计一个显示多个进度的进度条 但我没有找到任何库或帮助材料 我只能设计一个进度条 但我需要设计像 只需使用多个CircularProgressIndicator里面一个Box Box cont
  • 有没有办法提高 Xcode 的代码完成能力?

    由于某种原因 不确定从什么时候开始 并不总是这样 但是 当我想写下NS词典 up to NSDi它在暗示我NSDirectoryEnumerationSkipsSubdirectory后代 在设计算法时 苹果的工程师肯定会使用一些 NSDi
  • 计算R中多个矩阵的平均值

    计算相同维度的多个矩阵的平均值的有效方法是什么 如果 A B 是 2 x 2 矩阵 那么 A 2 3 4 5 B 6 7 8 9 平均值 A B 应该给出 4 5 6 7 简单的方法是做 A B num 矩阵 并显式处理 NA 值 还有其他
  • 在 xml 文件中实例化内部类(Preference)

    当您想在某些情况下访问自定义视图时layout xml文件 您有两个选择 该视图属于它自己的类 然后你就做
  • 如何在Javascript中检测Safari 10浏览器?

    我正在使用 var isSafari constructor i test window HTMLElement 但它不适用于新的 Safari 10 关于使用什么有什么建议吗 Thanks edit 如何检测Safari Chrome I