document.createEvent失败

shm*_*ael 8 javascript javascript-events

以下代码失败(在javascript控制台中,以及通过浏览器扩展注入脚本时)

document.createEvent('TestEvent')
Run Code Online (Sandbox Code Playgroud)

Firebug吐出:

[Exception... "Operation is not supported" 
 code: "9" 
 nsresult: "0x80530009 (NS_ERROR_DOM_NOT_SUPPORTED_ERR)" 
 location: "http://www.google.com 
 Line: 71"] 
Run Code Online (Sandbox Code Playgroud)

Chrome提供了类似的错误消息.我究竟做错了什么?

Fel*_*ing 19

文档:

type是一个字符串,表示要创建的事件类型.可能的事件类型包括"UIEvents","MouseEvents","MutationEvents"和"HTMLEvents".

所以你可能想要:

var e = document.createEvent('HTMLEvents');
e.initEvent('TestEvent', true, true);
Run Code Online (Sandbox Code Playgroud)

event.initEvent.

更新:document.createEvent('Event');对于自定义事件可能更好,但它是DOM Level 3的一部分,我不知道它支持多少.