2016-02-12 122 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(「提交」);有什麼區別 –