以下代码失败(在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提供了类似的错误消息。我做错了什么?
答案 0 :(得分:19)
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之前至少做一些自己的研究,就像你会使用谷歌一样;)