2012-03-28 2 views
0

div 내부의 텍스트를 클릭하면 잘 작동하는 div replace 메소드를 사용하여 편집기를 표시합니다.DIV를 CKeditor로 바꾸기

제 문제는 편집기를 닫는 것입니다. 본문에 첨부 된 클릭 이벤트를 사용하여 편집기를 닫습니다. 편집기 외부를 클릭하면 닫히지 만 편집기가 iframe에로드되어 있지 않기 때문에 해당 단추를 클릭해도 필자는 원하지 않는 편집기를 닫습니다. .

그래서 텍스트 입력뿐만 아니라 전체 편집기 외부의 아무 곳이나 클릭하여 편집기를 닫을 수 있습니다.

function ckEditor() 
{ 

editor=CKEDITOR.replace('campaign_text', 
{ 
toolbar : 'Mini' 
}); 

if (window.addEventListener) 
document.body.addEventListener('click', removeCk, false); 
else if (window.attachEvent) 
document.body.attachEvent('onclick', removeCk); 
} 


function removeCk(){ 
editor.destroy(); 
} 
는 는

답변

1

당신은 핸들러에 전달 된 MouseEvent 객체를 사용하고, 사용자가 어떤 요소에 인식 할 수는 클릭 :

function removeCk(e){ 
    var currentElement = document.elementFromPoint(e.clientX, e.clientY); 
    // ... destroy ckeditor only if currentElement isn't in panel 
} 
+0

좋은 생각이 완벽하게 작동합니다! – user1209203

관련 문제