在JS中测试SVG掩码支持

时间:2014-08-22 20:56:24

标签: javascript svg

有没有办法在Javascript中测试SVG掩码支持?我看着现代化,我没有找到任何东西。我正在使用Snap.svg,在将对象添加到dom之前,我查看了对象中的所有属性,它看起来是一样的。

2 个答案:

答案 0 :(得分:1)

document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Mask", "1.0")应该这样做

答案 1 :(得分:0)

可能不是最优雅的解决方案,但这对我有用:

var browserSupportsSvgMasks = (function () {
    var el = document.createElement("div");
    var result;

    if (typeof window.getComputedStyle !== "function") {
        // IE8 has no window.getComputedStyle and does not support svg
        return false;
    }

    el.style.visibility = "hidden";
    el.style.position = "absolute";
    el.innerHTML = '<svg version="1.0" xmlns="http://www.w3.org/2000/svg"><rect mask="url()" /></svg>';
    document.body.appendChild(el);
    result = window.getComputedStyle(el.firstChild.firstChild).width === "auto";
    document.body.removeChild(el);
    return result;
})();

随意改进并提供反馈。