let pointerTracker = function (e) { let out = { x: 0, y: 0 }; if ( e.type == "touchstart" || e.type == "touchmove" || e.type == "touchend" || e.type == "touchcancel" || e.type == "touchforcechange" ) { let touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; out.x = touch.pageX; out.y = touch.pageY; } else if ( e.type == "mousedown" || e.type == "mouseup" || e.type == "mousemove" || e.type == "mouseover" || e.type == "mouseout" || e.type == "mouseenter" || e.type == "mouseleave" ) { out.x = e.pageX; out.y = e.pageY; } return out; }; document.addEventListener("mousemove", function (e) { let tracker = pointerTracker(e); parent.postMessage(tracker, "*"); }); document.addEventListener("touchstart", function (e) { let tracker = pointerTracker(e); parent.postMessage(tracker, "*"); });