如何在客户端的浏览器中检测Raphael.js的兼容性?

时间:2013-01-09 10:50:48

标签: svg cross-browser raphael feature-detection vml

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

一种方法是特征检测SVG,然后,如果它不可用,则特征检测VML。有一个old question from 2009答案,包括一些用于检测VML和SVG特征的代码。然而,评论表明它可能在所有情况下都不起作用,而且我确信自2009年以来发生了很多变化。此外,拉斐尔可能有一种更简单的方法。

更简单的替代方案可能是使用一些Raphael内部标志或函数。它已经设置了变量,无论它是以SVG模式还是VML模式运行。这可以用来可靠地检测“两种情况”吗?

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


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

1 个答案:

答案 0 :(得分:6)

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

if (!Raphael.type) alert('Your browser does not support vector graphics!');