我开始通过添加一些有用的EventTarget
来扩展prototypes
接口(interface),但是随后我在Safari 8上对其进行了测试并得到:
[Error] ReferenceError: Can't find variable: EventTarget
我在MDN上发现Safari浏览器“
window.EventTarget
不存在”。This question看起来确实很有趣,但是它与IE8有关。
因此,我想知道是否可以在Safari上访问或EventTarget接口(interface)的引用,还是一种解决方法,可以使用
EventTarget.prototype.hasEventListener
和EventTarget.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/