window.addEventListener('load', function () { window.__USER_EVENTS_TRIGGER_STACK__ = window.__USER_EVENTS_TRIGGER_STACK__ || []; function userTriggerFn(e) { window.__USER_EVENTS_TRIGGER_STACK__.forEach(function (fn) { if (fn.num > 0) return; fn.num = 0; fn(e); fn.num++; }); document.body.removeEventListener('click', userTriggerFn, true); document.body.removeEventListener('touchstart', userTriggerFn, true); window.removeEventListener('scroll', userTriggerFn); window.removeEventListener('mousemove', userTriggerFn); } document.body.addEventListener('click', userTriggerFn, true); document.body.addEventListener('touchstart', userTriggerFn, true); window.addEventListener('scroll', userTriggerFn); window.addEventListener('mousemove', userTriggerFn); });