2015-09-14 64 views
1

我需要生成所有事件(MouseEvent,InputEvent等)的列表。我想我會通過遍歷window的所有成員並測試它們中的每一個來做到這一點,如果它們是事件。鍵(窗口)不返回所有成員

但我有問題獲得這些成員的列表。我認爲我可以使用keys(window),但它不會返回任何事件(fx MouseEvent),即使已定義window.MouseEvent也是如此。

我不想列出成員名稱,我需要成員本身的列表。其格式如下:

arr = [MouseEvent, InputEvent]; 

我該如何得到這樣的清單?

+0

要使特定事件的數組,或所有的事件? – romuleald

+0

我需要所有的事件,而不僅僅是一些特定的事件。 –

回答

0

這會告訴你所有的on事件(onmouseout等)。這是你在找什麼?

function onThing() { 
    return Object.keys(window).filter(function (el) { 
    return el.substring(0, 2) === 'on'; 
    }); 
} 

onThing(); 

DEMO

+0

這就是'window.__ proto__'來獲取事件 – romuleald