designMode가 'on'으로 설정된 iframe이 있습니다. 그것에는 여러 개의 div가 있으며 iframe이 편집 가능하기 때문에 사용자는 해당 div 중 하나를 입력하고 편집 할 수 있습니다. 사용자가 div 중 하나를 편집 할 수 없게해야합니다.요소 사용자를 얻는 방법은 현재 designMode iframe 내에서 입력하고 있습니까?
이 같은 사업부 클릭에서 사용자를 방지 할 수 있습니다 :
document.getElementById('mydiv').addEventListener('mousedown', function(event) {
event.preventDefault();
return false;
}, true);
그러나, 사용자는 여전히 키보드의 화살표 키를 사용하여 사업부로 커서를 통해 이동하고 편집 할 수 있습니다. div 같이 포커스를 받으면 콜백을 시도했는데, 다음과 같습니다.
document.getElementById('mydiv').addEventListener('focus', function(event) {
...
}, true);
그러나이 콜백은 호출되지 않습니다. 그런 다음 키 누르는 것을 방지하려고 시도했습니다.
document.getElementById('mydiv').addEventListener('keydown', function(event) {
event.preventDefault();
return false;
}, true);
그러나 콜백은 호출되지 않습니다. 난 문서에 콜백을 연결 시도 :
document.addEventListener('keydown', function(event) {
...
}, true);
및 콜백 후 호출되는 않지만, 나는 대상 요소는 우려의 사업부 인 경우에만 이벤트를 취소 할 수있는 방법이 필요하다.
목표를 달성하는 방법에 대한 아이디어는 언제나 환영합니다.
음 ... 어떤 콜백을 사용해야하나요, 어떤 요소입니까? 'focus'와 'keypress'는 document.getElementById ('mydiv')가 아닌 document 요소에 대해서만 실행됩니다. 문서에 대해 'keydown'을 사용하면 대상은 항상 문서로 설정됩니다. –
내가 제안하는 것은 하위 요소 집합에 컨테이너의 클릭 동작을 위임하는 것이며 각 요소는 '편집 가능'클래스 이름이 적용됩니다. 그게 그들이해야 할 일이라면. click 이벤트가 발생하면 클릭 된 대상을 컨테이너의 기본 범위에서 수신하므로 이벤트 콜백에서 'editable'className을 확인할 수 있습니다. 따라서 클릭 수를 늘리십시오. 편집 할 수 없으면 활동이 스쿼시됩니다. – danjah