2011-04-20 1 views
2

<div contentEditable=true>innerHTML을 프로그래밍 방식 (javascript)으로 업데이트하려고합니다.인터넷 익스플로러 div contentEditable이 DOM 요소 선택을 방지합니다.

Internet Explorer < 8을 사용하거나 HTML에 <span> 태그가 포함되어있는 경우 Quark 모드에서 태그를 사용하여 캐럿 위치를 설정하거나 키보드를 사용하여 char에서 char로 이동할 수 없습니다. 대신 <span>이 선택되고 (onclick) 이동/크기 조정이 가능하거나 캐럿이 <span> (키보드 화살표)의 시작/끝으로 이동합니다.

스크린 샷 :

http://i54.tinypic.com/343p75y.png

당신이 선택의이 종류를 방지하는 방법을 알고 계십니까? 표준 모드 (또는 다른 브라우저)의 Internet Explorer 8에서는이 동작을하지 않습니다.

답변

2

이는 어떤 요소가 has layout 인 경우 발생합니다. 레이아웃을 트리거하는 CSS 속성 중 어느 것도 스팬에 적용되지 않으며 문제가 사라지지 않도록하십시오.

+0

감사합니다. Tim, 실제로 hasLayout 속성을 트리거하는 것으로 보이는 'style = "zoom : 1"'이 있습니다. 문제는 내가이 _zoom_ 스타일을 나 자신에 걸쳐 설정하지 않는다는 것입니다. –

+0

@Jerome : 당신이 조금 갇혀있는 것 같습니다. 일단 hasLayout이 요소에서 트리거되면, 나는 믿을 수 없습니다. 그것을 제거하는 방법이 있습니다. 죄송합니다. –

+0

명확히하기 위해, 나는'innerHTML'을 직접 만들고'zoom'style을 설정하지 않습니다. IE에 의해 자동으로 추가 된 것처럼 보입니다. 이후에 'normal'로 설정하려고 시도했지만'hasLayout' 문제는 해결되지만 다른 문제가 발생합니다 (캐럿 위치를 처리하는 함수가 올바르게 작동하지 않습니다) –

관련 문제