检测对beginElement()的支持

时间:2014-10-13 19:16:54

标签: animation svg internet-explorer-9 modernizr feature-detection

我使用beginElement()在我的网络应用中启动SVG动画:

document.getElementById("item").beginElement();

但这会导致IE9及以上版本中出现以下错误(doesn't support it):

Object doesn't support property or method 'beginElement'

我不介意动画在IE9中不起作用,但我需要防止错误发生。如何设置检查以便仅在浏览器支持时才调用beginElement()? E.g:

if (hasSupport) {
    document.getElementById("item").beginElement();
}

我尝试了一种检测技术like this

return !!document.getElementById("item").beginElement();

但即使在我知道支持它的浏览器(如Firefox)中,它总会返回false

我还考虑过使用Modernizr,但它没有对beginElement()进行测试。

1 个答案:

答案 0 :(得分:3)

您可以在执行之前嗅探方法以查看它是否存在。

var item = document.getElementById("item");

if ('beginElement' in item) {
    item.beginElement();
}

Modernizr使用in表单,但if (item.beginElement)的工作方式相同。