Skip to content

Instantly share code, notes, and snippets.

@bearrundr
Created February 10, 2015 13:45
Show Gist options
  • Save bearrundr/81c0fce06d88398dedcb to your computer and use it in GitHub Desktop.
Save bearrundr/81c0fce06d88398dedcb to your computer and use it in GitHub Desktop.

Revisions

  1. bearrundr created this gist Feb 10, 2015.
    70 changes: 70 additions & 0 deletions mouseEvent
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,70 @@
    function mouseEvent(type, sx, sy, cx, cy) {
    var evt;
    var e = {
    bubbles: true,
    cancelable: (type != "mousemove"),
    view: window,
    detail: 0,
    screenX: sx,
    screenY: sy,
    clientX: cx,
    clientY: cy,
    ctrlKey: false,
    altKey: false,
    shiftKey: false,
    metaKey: false,
    button: 0,
    relatedTarget: undefined
    };
    if (typeof( document.createEvent ) == "function") {
    evt = document.createEvent("MouseEvents");
    evt.initMouseEvent(type,
    e.bubbles, e.cancelable, e.view, e.detail,
    e.screenX, e.screenY, e.clientX, e.clientY,
    e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
    e.button, document.body.parentNode);
    } else if (document.createEventObject) {
    evt = document.createEventObject();
    for (prop in e) {
    evt[prop] = e[prop];
    }
    evt.button = { 0:1, 1:4, 2:2 }[evt.button] || evt.button;
    }
    return evt;
    }
    function dispatchEvent (el, evt) {
    if (el.dispatchEvent) {
    el.dispatchEvent(evt);
    } else if (el.fireEvent) {
    el.fireEvent('on' + type, evt);
    }
    return evt;
    }
    function fireKey(el, key)
    {
    if(document.createEventObject)
    {
    var eventObj = document.createEventObject();
    eventObj.keyCode = 37; // left
    el.fireEvent("onkeydown", eventObj);
    }else if(document.createEvent)
    {
    var eventObj = document.createEvent("Events");
    eventObj.initEvent("keydown", true, true);
    eventObj.which = key;
    el.dispatchEvent(eventObj);
    }
    }
    function action ()
    {
    fireKey(document, 37);
    fireKey(document, 38);
    fireKey(document, 39);
    fireKey(document, 40);
    var t = document.getElementsByClassName("game-over")[0];
    if (t != undefined) {
    var evt = mouseEvent("click", 1, 50, 1, 50);
    dispatchEvent(document.getElementsByClassName("retry-button")[0], evt);
    }
    }
    setInterval(action, 200);