현상
document.execCommand('insertHTML', ...)를 사용하여 contenteditable 영역에 HTML 콘텐츠를 삽입할 때 DOM 구조가 손상되거나 예상치 못하게 재서식될 수 있습니다. 중첩된 요소가 평탄화되거나 재구성될 수 있습니다.
재현 예시
- contenteditable div를 만듭니다.
- 그 안에서 위치를 선택합니다.
document.execCommand('insertHTML', false, '<p><strong>Bold text</strong></p>')를 사용합니다.- 결과 DOM 구조를 검사합니다.
관찰된 동작
- Windows의 Chrome에서
insertHTML이 DOM 구조를 손상시킬 수 있습니다. - 중첩된 요소가 평탄화되거나 재구성될 수 있습니다.
- 서식이 손실되거나 예상치 못하게 변경될 수 있습니다.
예상 동작
insertHTML은 제공된 HTML 구조를 보존해야 합니다.- 중첩된 요소는 중첩 상태를 유지해야 합니다.
- 서식이 유지되어야 합니다.