我有从IE 9迁移到11的情况,增加了对Firefox的支持,我的一位同事已经取代了
form.fireEvent("onsubmit");
具有以下块
var event; // The custom event that will be created
if (document.createEvent) {
event = document.createEvent("HTMLEvents");
event.initEvent("submit", true, true);
form.dispatchEvent(event);
} else {
event = document.createEventObject();
event.eventType = "submit";
form.fireEvent("submit");
}
form.submit();
我不明白这是什么意思。上面的块是否正确?
-
if (document.createEvent){}
检查这是否受支持,因为许多用于创建自定义事件的方法已弃用
-
event = document.createEvent("HTMLEvents");
如果上述为真,则创建
Event
对象HTMLEvents
是要创建的事件类型。查看此处了解更多信息 -
event.initEvent("submit", true, true);
定义事件名称。这里的事件名称是"提交"。
正常语法
event.initEvent(type, bubbles, cancelable);
-
form.dispatchEvent(event)
;dispatchEvent
是创建-初始化-调度过程的最后一步,该过程用于将事件调度到实现的事件模型中。有关调度事件的更多信息 -
event = document.createEventObject();
这是为了处理Internet Explorer。它生成一个事件对象。
-
event.eventType = "submit";
它将创建类型
"submit"
的事件 form.fireEvent("submit");
这将触发事件
form
希望这对您有所帮助。