vertical-scroll-touch-block.html (1018B)
1 <!DOCTYPE html> 2 <style> 3 body, div, html { 4 height: 100%; 5 width: 100%; 6 overflow: hidden; 7 } 8 p { 9 margin-bottom: 1000px; 10 margin-right: 1000px; 11 } 12 </style> 13 <body> 14 <div id="blocker"> 15 <p>This page blocks 'touchstart' and 'touchmove'.</p> 16 </div> 17 <script> 18 function doSomethingUnimportant(e) { 19 return false !== e; 20 } 21 22 function preventDefault(e) { 23 e.preventDefault(); 24 } 25 26 document.addEventListener("touchstart", doSomethingUnimportant, {passive: false}); 27 document.addEventListener("touchmove", doSomethingUnimportant, {passive: false}); 28 29 function messageHandler(e) { 30 let msg = e.data; 31 let element = document.querySelector(msg.query); 32 if (msg.prevent) { 33 element.addEventListener(msg.event_type, preventDefault, {passive: false}); 34 } else { 35 element.addEventListener(msg.event_type, doSomethingUnimportant); 36 } 37 e.source.postMessage(msg, "*"); 38 } 39 40 window.addEventListener("message", messageHandler); 41 </script> 42 </body>