我开始通过添加一些有用的EventTarget来扩展prototypes接口(interface),但是随后我在Safari 8上对其进行了测试并得到:

[Error] ReferenceError: Can't find variable: EventTarget

我在MDN上发现Safari浏览器“window.EventTarget不存在”。

This question看起来确实很有趣,但是它与IE8有关。

因此,我想知道是否可以在Safari上访问或EventTarget接口(interface)的引用,还是一种解决方法,可以使用EventTarget.prototype.hasEventListenerEventTarget.prototype.hasEventListener之类的代码而不会在Safari上出现任何错误?

编辑
我发现了一个有趣的commit,它说它是在15年9月12日实现的(从时间戳记起),但是它肯定在Safari 9.1中不起作用

最佳答案

解决方法:

我只是将 Element interface用作Safari的备用

var EventTarget = EventTarget || Element;
EventTarget.prototype.addEventListener = function(){/*Some magic here*/};

我还检查了Element是否从EventTarget接口(interface)继承了prototypes,并且做到了! (document.body.addEventListener == EventTarget.prototype.addEventListener返回了true)

关于javascript - Safari中的EventTarget接口(interface),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36675693/

10-09 17:47