我被指派在文档中触发自定义事件,但不能使用任何类库,如jQuery或prototype。
所以在Firefox上我可以这样做:
function fireCustomEvent(eventData)
{
if (document.createEvent) // Firefox
{
var event = document.createEvent('HTMLEvents'); // create event
event.initEvent('myCustomEvent', true, true ); // name event
event.data = eventData; // put my stuff on it
document.dispatchEvent(event); // fire event
}
else if (document.createEventObject) // IE
{
xxxxxxxxxxx
}
}
现在我可以像这样触发它:
fireCustomEvent({
category: 'test',
value: 123
});
然后像这样捕获它(我可以使用jQuery):
$(document).bind('myCustomEvent', function (event) {
doStuff(event);
});
我的问题是,我该如何使这在IE上工作(换句话说,在哪里放置xxxxxxxxxxx)?
我认为在IE中等价的代码应该是这样的:
var event = document.createEventObject();
event.data = eventData;
document.fireEvent('myCustomEvent', event);
但是那样是不起作用的。IE只允许我使用预定义的事件名称(例如onclick)而且其中一些甚至不起作用(例如onmessage)。
感谢任何帮助或建议!
if (typeof window.CustomEvent === 'function') { event = new CustomEvent(eventName, {detail: detail}); }
- spoutnikwindow.CustomEvent
的类型,因为在Android WebKit < 4.3中,window.CustomEvent
存在但不是构造函数。请参见http://caniuse.com/#feat=customevent。祝好,spoutnik - spoutnik