如果EventConstructor不是构造函数,我应该如何创建事件?

Gus*_*avo 4 javascript events

我正在关注MDN指南并试图创建一个事件:

MDN创建事件的指南

var jGp = new Object();
...
jGp.evt = new Object();
jGp.evt.erro = new Event("jGp_evtErro");
Run Code Online (Sandbox Code Playgroud)

错误是(Safari):

TypeError: '[object EventConstructor]' is not a constructor (evaluating 'new Event("jGp_evtErro")')
Run Code Online (Sandbox Code Playgroud)

另外要使用document.createEvent不推荐的接缝(MDN如上所述),那么我应该如何创建我的活动?

小智 6

我在Safari上遇到过这个问题,我使用了一个try/catch语句,以便尽可能使用非弃用的构造函数,但如果必要的话,可能会失败.

jGp.evt = new Object();
try {
  jGp.evt.erro = new Event("jGp_evtErro");
}
catch (e) {
  jGp.evt.erro = document.createEvent('Event');
  jGp.evt.erro.initEvent("jGp_evtErro", true, true);
}
Run Code Online (Sandbox Code Playgroud)