IE 11 / Firefox中的FireEvent

时间:2016-02-12 02:57:09

标签: javascript internet-explorer 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 个答案:

答案 0 :(得分:0)

  1.   

    if (document.createEvent){}

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

  2.   

    event = document.createEvent("HTMLEvents");

    如果满足以上条件,则创建Event对象

    HTMLEvents是要创建的事件类型。 Check Here了解更多

  3.   

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

    定义事件名称。事件名称为“submit”。

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

  4.   

    form.dispatchEvent(event);

    dispatchEvent是create-init-dispatch流程的最后一步,用于将事件分派到实现的事件模型中。More about dispatchEvent

  5.   

    event = document.createEventObject();

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

    1.   

      event.eventType = "submit";

      它将创建类型为"submit"

    2. 的事件
    3.   

      form.fireEvent("submit");

      这会触发form

    4. 上的活动

      希望这会对你有所帮助。