Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svg 如何检测客户端';s浏览器?_Svg_Cross Browser_Raphael_Feature Detection_Vml - Fatal编程技术网

Svg 如何检测客户端';s浏览器?

Svg 如何检测客户端';s浏览器?,svg,cross-browser,raphael,feature-detection,vml,Svg,Cross Browser,Raphael,Feature Detection,Vml,测试浏览器/用户代理/客户端是否支持的最简单、最可靠的方法是什么?Raphael使用Javascript创建和控制SVG矢量图形,或者,如果SVG不可用但VML可用(例如,在Internet Explorer版本6到8中),则使用VML创建和控制等效图形 一种方法是特性检测SVG,如果SVG不可用,则特性检测VML。这里有一个答案,包括一些用于检测VML和SVG特性的代码。然而,这些评论表明,它可能并不适用于所有情况,我相信自2009年以来已经发生了很大变化。另外,拉斐尔可能有一种更简单的方法

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

一种方法是特性检测SVG,如果SVG不可用,则特性检测VML。这里有一个答案,包括一些用于检测VML和SVG特性的代码。然而,这些评论表明,它可能并不适用于所有情况,我相信自2009年以来已经发生了很大变化。另外,拉斐尔可能有一种更简单的方法

一个更简单的选择可能是使用一些Raphael内部标志或函数。它已经为它是在SVG模式下运行还是在VML模式下运行设置了变量。这能用于可靠地检测“两者都不”的情况吗

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


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

检查官方文件:


与今天一样,这是正确的链接
if (!Raphael.type) alert('Your browser does not support vector graphics!');