Как вызвать событие на javascript
Во всех современных браузерах можно создать событие используя конструктор
document.documentElement.addEventListener("click", function(e) {
  console.log(e.type, e);
})
document.documentElement.addEventListener("magic", function(e) {
  console.log(e.type, e);
})

var event = new Event("click", {bubbles : true, cancelable : true})
var customEvent = new CustomEvent("magic", {bubbles : true, cancelable : true, detail : "<any string data>"})

document.documentElement.dispatchEvent(event);
document.documentElement.dispatchEvent(customEvent);


Совместимость со старыми браузерами можно обеспечить с помощью polyfill библиотек
Идея такая. Есть способ для w3c браузеров, есть для IE. В w3c вызывается одна функция для создания объекта события, он заполняется нужными данеыми. и вторая функция, которая запускает распространение этого события, т.е. вызывает слушающие его обработчики. В Ие вроде проще, все делается одной функцией.

Подвохи: в ИЕ нельзя создать кастомное пользовательское событие, только стандартные. Также, запуск события, например, click, только вызывает обработчики onclick(), но не нажимает кнопку, не двигает курсор в поле ввода, ит.д., то есть не делает того же, что и реальный клик мышкой.

Для подробностей ищите слова fireEvent, createEvent, dispatchEvent на сайтах MDN и MSDN.