FireEvent in IE 11/Firefox



我有从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();

我不明白这是什么意思。上面的块是否正确?

  1. if (document.createEvent){}

    检查这是否受支持,因为许多用于创建自定义事件的方法已弃用

  2. event = document.createEvent("HTMLEvents");

    如果上述为真,则创建Event对象

    HTMLEvents是要创建的事件类型。查看此处了解更多信息

  3. event.initEvent("submit", true, true);

    定义事件名称。这里的事件名称是"提交"。

    正常语法event.initEvent(type, bubbles, cancelable);

  4. form.dispatchEvent(event) ;

    dispatchEvent是创建-初始化-调度过程的最后一步,该过程用于将事件调度到实现的事件模型中。有关调度事件的更多信息

  5. event = document.createEventObject();

这是为了处理Internet Explorer。它生成一个事件对象。

  1. event.eventType = "submit";

    它将创建类型 "submit"

  2. 的事件
  3. form.fireEvent("submit");

    这将触发事件form

希望这对您有所帮助。

最新更新