测试浏览器/用户代理/客户端是否支持Raphael.js library的最简单,最可靠的方法是什么? Raphael使用Javascript来创建和控制SVG矢量图形,或者,如果SVG不可用但VML是可用的(例如,在Internet Explorer 6至8版中),它将使用VML创建和控制等效的图形。
一种方法是特征检测SVG,然后,如果不可用,则进行特征检测VML。有一个带有答案的old question from 2009,其中包括一些用于功能检测VML和SVG的代码。但是,这些评论表明它不一定在所有情况下都有效,而且我敢肯定,自2009年以来发生了很多变化。此外,拉斐尔(Raphael)可能有一种更简单的方法。
一个更简单的替代方法可能是使用一些Raphael内部标志或函数。它已经设置了用于SVG模式还是VML模式的变量。可以使用它来可靠地检测“都不”状况吗?
还是有一种基于创建空Raphael对象并测试其属性或功能的可靠方法?
就一般背景而言,据我所知,唯一与Raphael不兼容的通用浏览器是1.x和2.x版本中的Android股票浏览器,但是,如果出现以下情况,我宁愿使用功能检测而不是浏览器版本检测可能(除非有充分的理由说明为什么在这种情况下这实际上是一个更好的解决方案)。
最佳答案
检查官方文档:http://raphaeljs.com/reference.html#Raphael.type
if (!Raphael.type) alert('Your browser does not support vector graphics!');
关于svg - 如何在客户端的浏览器中检测Raphael.js兼容性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14233600/