web - deptno/deptno.github.io GitHub Wiki

web

Q. iframe ์•ˆ์—์„œ์˜ ์Šคํฌ๋กค ์ด๋ฒคํŠธ๋ฅผ ๋ง‰๊ณ  parent element ๋ฅผ ๋Œ€์‹  ์Šคํฌ๋กค

<iframe />
<div class="event-hooker"/>
  • ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•˜๋Š”๊ฒฝ์šฐ event-hooker ์— pointer-events: none ์„ ์ฃผ์ž…ํ•˜๋ฉด ์•„๋ฌด๋Ÿฐ ์ด๋ฒคํŠธ๋„ ํŠธ๋ฆฌ๊ฑฐ ๋˜์ง€ ์•Š๋Š”๋‹ค
<div class="event-wrapper">
  <iframe />
</di>
  • event-wrapper ์—์„œ ํŠน์ • ์ด๋ฒคํŠธ๋Š” stopPropagation ์œผ๋กœ ํ†ต๊ณผ์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค(์บก์ณ๋ง ๋‹จ๊ณ„)
  • ํ•ด๋ณด๋‹ˆ iframe ์ธ ๊ฒฝ์šฐ๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ถ€๋ชจ๋ณด๋‹ค ๋จผ์ € ๋ฐ›๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์—ฌ์„œ ํ•ด๊ฒฐ๋˜์ง€ ์•Š๋Š”๋‹ค
<div class="target" />
<iframe />
  • iframe ์˜ ํŠน์ • ์ด๋ฒคํŠธ๋ฅผ target ์œผ๋กœ ํ† ์Šคํ•œ๋‹ค
    iframe.contentWindow.body.onwheel = (ev) => target.dispatchEvent('wheel', ev)
    • cross-origin ์ธ ๊ฒฝ์šฐ ์—๋Ÿฌ ๋ฐœ์ƒ
      • Uncaught DOMException: Blocked a frame with origin "http://localhost:4000" from accessing a cross-origin frame.
      • postMessage ๋กœ ์šฐํšŒ๋ฅผ ํ•ด์•ผํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ž„

links

  • css
โš ๏ธ **GitHub.com Fallback** โš ๏ธ