document.createEvent失败

时间:2011-01-10 10:23:54

标签: javascript javascript-events

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

document.createEvent('TestEvent')

Firebug吐出来:

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

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

3 个答案:

答案 0 :(得分:19)

来自documentation

  

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

所以你可能想要:

var e = document.createEvent('HTMLEvents');
e.initEvent('TestEvent', true, true);

请参阅event.initEvent

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

答案 1 :(得分:1)

使用以下某种活动类型:https://developer.mozilla.org/en/DOM/document.createEvent#Notes

TestEvent不是受支持的事件类型。最好使用“MouseEvents”或“HTMLEvents”。

答案 2 :(得分:1)

根本没有名为TestEvent的事件类型:

https://developer.mozilla.org/en/DOM/document.createEvent#section_4
http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-DocumentEvent-createEvent

也许你的意思是TextEvent

PS:下次在使用SO之前至少做一些自己的研究,就像你会使用谷歌一样;)