2

测试浏览器/用户代理/客户端是否支持Raphael.js 库的最简单、最可靠的方法是什么?Raphael 使用 Javascript 来创建和控制 SVG 矢量图形,或者,如果 SVG 不可用但 VML 可用(例如,在 Internet Explorer 版本 6 到 8 中),它会使用 VML 创建和控制等效图形。

一种方法是对 SVG 进行特征检测,然后,如果它不可用,则对 VML 进行特征检测。有一个2009 年的老问题,其答案包括一些用于特征检测 VML 和 SVG 的代码。然而,评论表明它可能并非在所有情况下都有效,而且我确信自 2009 年以来发生了很多变化。此外,可能还有一种更简单的特定于 Raphael 的方法。

一个更简单的替代方法可能是使用一些 Raphael 内部标志或函数。它已经设置了是否在 SVG 模式或 VML 模式下运行的变量。这可以用来可靠地检测“两者都不是”的情况吗?

或者也许有一种基于创建空 Raphael 对象并测试其属性或功能的可靠方法?


对于一般背景,据我所知,唯一与 Raphael 不兼容的常见浏览器是版本 1.x 和 2.x 中的 Android 库存浏览器,但是,我更喜欢使用功能检测而不是浏览器版本检测,如果可能的(除非有充分的理由说明在这种情况下这实际上是一个更好的解决方案)。

4

1 回答 1

6

查看官方文档:http ://raphaeljs.com/reference.html#Raphael.type

if (!Raphael.type) alert('Your browser does not support vector graphics!');
于 2013-01-09T12:03:39.467 回答