Some browsers won\'t allow you to re-dispatch an event that has already been dispatched, but allow you to create new event objects based on values that can be obtained from
I found my own answer, at least for MouseEvents specifically:
function cloneMouseEvent( e ) {
var evt = document.createEvent( "MouseEvent" );
evt.initMouseEvent( e.type, e.canBubble, e.cancelable, e.view, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget );
return evt;
}
You can then dispatch the event on a target with:
target.dispatchEvent( evt );