dispatchEvent no funciona

Como se muestra en la demostración, dispatchEvent no está funcionando como se esperaba.

http://jsfiddle.net/DerekL/V8uEN/

Parte key:

 btn.dispatchEvent( document.createEvent("MouseEvent") .initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null) ); 

Una alerta debería aparecer después de 1 segundo después de cargarse, pero no se acerca y aparece un error en la console:

Uncaught InvalidStateError: Failed to execute 'dispatchEvent' on 'EventTarget': The event provided is null.

No sé dónde está el problema desde que encontré una demo casi con el mismo código exacto, y está funcionando, pero no el mío.

 btn.dispatchEvent( document.createEvent("MouseEvent") .initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null) ); 

Tu problema es que initMouseEvent no devuelve nada. No puedes combinar todo eso en una sola línea. Necesitas romperlo.

 var mEvent = document.createEvent("MouseEvent"); mEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); btn.dispatchEvent(mEvent); 

Así es como se hace en la demostración a la que se vinculó.

Esto funciona:

 var btn = document.querySelector("button"); btn.addEventListener("click", function () { alert("Clicked."); }); setTimeout(function () { var mEvent = document.createEvent("MouseEvent"); mEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); btn.dispatchEvent(mEvent); }, 1000);