编程语言
首页 > 编程语言> > javascript-在SVG上IE / Edge单击会导致错误-TypeError:对象不支持属性或方法’blur’

javascript-在SVG上IE / Edge单击会导致错误-TypeError:对象不支持属性或方法’blur’

作者:互联网

我正在使用角度组件(角度UI分页,尽管我不认为这是问题的原因),并且我的模板包括以下内容…

<my-button ng-click="selectPage(totalPages, $event)">
    <svg>
        <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="domain.com/scgSprite.svg#arrow"></use>
    </svg>
</my-button>

问题是,在MS Edge和IE(而不是Chrome)中,单击按钮时出现以下错误.

TypeError:对象不支持属性或方法“模糊”

单击按钮但没有图标的边缘不会发生这种情况.我必须实际单击按钮上的SVG元素以获取错误.

任何帮助将不胜感激.

编辑:

从那以后我发现导致错误的angular-ui库中的行是这些…

if (evt && evt.target) {
    evt.target.blur();
}

我不想编辑该库,因为将来我将无法将其更新为较新的版本.

是否有可能在MS浏览器中将.blur()函数添加到svg元素?

解决方法:

这解决了问题

if (typeof SVGElement.prototype.blur == 'undefined') {
    SVGElement.prototype.blur = function(){};
}

标签:microsoft-edge,javascript,angularjs,svg,internet-explorer
来源: https://codeday.me/bug/20191011/1895334.html