有人已经问过我关于在浏览器中检测 SVG 支持的问题,但是有三个领先的解决方案,并且没有太多关于每个解决方案的优点的讨论。
那么:如果有的话,哪个最好?就可移植性和正确性而言,就是这样。假阴性(即“无 svg”)是不可取的,但可以接受;误报不是。
展品 A:
var testImg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNzUiIGhlaWdodD0iMjc1Ij48L3N2Zz4%3D';
var img = document.createElement('img')
img.setAttribute('src',testImg);
return img.complete;
展品 B:
return document.implementation.hasFeature(
"http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1");
展品 C:
return !! document.createElementNS &&
!! document.createElementNS (
'http://www.w3.org/2000/svg',
"svg")
.createSVGRect;