FireEvent在IE 11 /火狐

FireEvent在IE 11 /火狐

问题描述:

我有这种情况的迁移从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' –

  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。它生成一个事件对象。

  1. event.eventType = "submit";

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

  2. form.fireEvent("submit");

    这将触发事件在form

  3. 希望这会对你有所帮助。

开始=>
+0

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

+0

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

+0

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