【发布时间】:2011-12-18 04:05:54
【问题描述】:
如何使用 JavaScript 检测 Safari 浏览器?我尝试了下面的代码,它不仅检测到 Safari,还检测到 Chrome 浏览器。
function IsSafari() {
var is_safari = navigator.userAgent.toLowerCase().indexOf('safari/') > -1;
return is_safari;
}
【问题讨论】:
-
一些与文件提交相关的 JS 代码在 Safari 中可以正常工作,而在 Chrome 中可以正常工作。
-
您几乎可以肯定地测试 API 中存在的任何差异。除了 Safari 和 Chrome,还有其他基于 WebKit 的浏览器。
-
希望检测浏览器的原因有很多。例如,在撰写本文时,SVG 引擎的某些方面(例如过滤器)在 Safari 中已损坏,但在 Chrome 中可以正常工作。
-
有时您无法修复错误,因为您无法重现它(我无法访问 Mac)。我修复了 Midori 的问题(sendAsBinary shim 的一些 BlobBuilder/Blob 问题),但客户说文件上传仍然存在问题,所以我能想到的最好的事情就是删除 Safari 支持并为其使用 iframe(至于旧的 IE)
标签: javascript browser-detection