javascript - IE/Edge 单击 SVG 导致错误 - TypeError : Object doesn't support property or method 'blur'

标签 javascript angularjs internet-explorer svg microsoft-edge

我正在使用一个 Angular 组件( Angular 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)中单击按钮时出现以下错误。

类型错误:对象不支持属性或方法'blur'

当我点击按钮但在没有图标的边缘时不会发生。我必须实际单击按钮上的 SVG 元素才能收到错误消息。

我们将不胜感激任何帮助。

编辑:

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

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

我不想编辑库,因为那样我以后就无法将它更新到较新的版本。

我是否可以将 .blur() 函数添加到 MS 浏览器中的 svg 元素?

最佳答案

这解决了问题

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

关于javascript - IE/Edge 单击 SVG 导致错误 - TypeError : Object doesn't support property or method 'blur' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38648098/

相关文章:

javascript - 在php中提交表单后未收到值

javascript - ember 从应用程序 Controller 设置组件数据

javascript - 延迟 25/30 毫秒的 CSS3 animationStarted 事件触发

angularjs - 动态编译 Angular 指令

javascript - 如何使用 AngularJS 添加不同的背景颜色

javascript - 使用 CSS 在 AngularJS 中使用图标设计三 Angular 形图案

javascript - 如何将总纳秒转换为 HH :MM:SS:ms:ns in JavaScript and node? 格式的字符串

css - 水平滚动 ie9 问题

c++ - IE BHO - 为页面加载调用 DISPID_FILEDOWNLOAD?

javascript - 在 IE6 中使用一维(CSS)缩放图像时如何保持纵横比?