tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

save-iframe-scroll-offset-when-display-none.sub.html (898B)


      1 <!DOCTYPE html>
      2 <div style="width: 10000px; height: 10000px">
      3  <!-- Adding <input> is to reproduce scroll offset reset when display:none -->
      4  <input type="text">
      5 </div>
      6 <script>
      7 function postReplyMessage(target, frame_id, command) {
      8  target.postMessage({
      9    command: command,
     10    frame_id: frame_id,
     11    scrollX: window.scrollX,
     12    scrollY: window.scrollY
     13  }, "*");
     14 }
     15 
     16 function handleMessage(event) {
     17  switch (event.data.command) {
     18    case 'scrollTo':
     19      window.scrollTo(event.data.scrollX, event.data.scrollY);
     20      break;
     21    case 'getScroll':
     22      // No-op, just reply with current scroll position.
     23      break;
     24    default:
     25      throw Error(`Unknown command: ${event.data.command}`);
     26      break;
     27  }
     28  requestAnimationFrame(() => {
     29    postReplyMessage(event.source, event.data.frame_id, event.data.command);
     30  });
     31 }
     32 
     33 window.addEventListener('message', handleMessage);
     34 </script>