클립보드·입력 라우팅

이벤트 핸들러는 JS에 두고, HTML 정규화·스키마 강제를 WASM에서 할지 경계를 정합니다.

개요

붙여넣기는 HTML·플레인·파일을 가져옵니다. 브라우저마다 공백 처리가 다릅니다. 결정적 파싱은 Rust가 유리할 수 있지만, raw 데이터는 여전히 JS의 clipboardData·비동기 Clipboard API로 받습니다.

JS ↔ WASM 경계와 함께 페이로드 크기를 설계하세요.

beforeinput·붙여넣기

들어오는 편집을 막거나 바꿀 때 beforeinput을 씁니다. IME와 일부 환경에서는 취소가 제한됩니다.

흔한 흐름: JS가 클립보드 읽기 → 가벼운 전처리 → WASM이 파싱·정제 → 연산이나 깨끗한 HTML 문자열 반환 → JS가 DOM/모델에 적용.

정제 위치

  • Rust/WASM: 테스트·네이티브와 규칙 공유에 유리.
  • JS: DOMParser·기존 생태계와 붙이기 쉬움; 규칙 이중화 주의.

붙여넣기·불러오기 경로마다 정책이 다르면 XSS로 이어지기 쉽습니다. 한 정책을 유지하세요.

클립보드 API

비동기 읽기는 사용자 제스처·권한이 필요한 경우가 많습니다. 커스텀 선택 모델과 함께 쓸 때 복사·잘라내기 합성 이벤트 전략이 필요할 수 있습니다.

에디터 → 정제·보안