2016-02-12 114 views
0

我有这种情况的迁移从IE 9到11与Firefox和增加支撑我collegue之一已经取代FireEvent在IE 11 /火狐

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(); 

我无法理解它的含义。上面的代码块是否正确?

+0

'var event;' - 坏的开始... IE有一个全局变量叫做'event' –

回答

0
  1. if (document.createEvent){}

    检查是否该支持的,因为许多方法用于创建自定义事件折旧

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

    如果上面是真的牛逼母鸡创建Event对象

    HTMLEvents是要创建的事件的类型。​​更多

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

    定义事件name.Here事件名称为 “提交”。

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

  4. form.dispatchEvent(event);

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

  5. event = document.createEventObject();

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

  • event.eventType = "submit";

    它将创建类型的事件"submit"

  • form.fireEvent("submit");

    这将触发事件在form

  • 希望这会对你有所帮助。

    +0

    那么为什么这两个部分呢?哪个是IE?哪个适用于其他浏览器? –

    +0

    else循环正在检查ie。我已经提到它 – brk

    +0

    谢谢。实际上我不是前端开发人员。还有一个疑问是如何form.fireEvent(“onsubmit”);已经改为form.fireEvent(“提交”);有什么区别 –