Skip to content

Instantly share code, notes, and snippets.

@cagerton
Created December 13, 2013 18:21

Revisions

  1. cagerton created this gist Dec 13, 2013.
    28 changes: 28 additions & 0 deletions hijack_touch.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,28 @@
    (function touchJack(){
    var lastTouch = 0;

    document.addEventListener("touchstart", function(e){
    lastTouch = Date.now();
    var touch = e.touches[0],
    synth_event = document.createEvent("MouseEvents");
    synth_event.fab=true;
    synth_event.initMouseEvent("click", true, true, window,
    0, touch.screenX, touch.screenY, touch.clientX, touch.clientY,
    false, false, false, false, 0, null);
    e.target.dispatchEvent(synth_event);
    });

    ["click", "mouseout", "mouseover"].forEach(function(event_type){
    document.addEventListener(event_type, function(e){

    if(!e.fab && Date.now() < lastTouch + 500){
    e.stopPropagation();
    e.stopImmediatePropagation();
    e.preventDefault();
    return false;
    }
    }, true); // capture phase.

    });

    })();