2014-05-12 2 views
3

나는 tinymce에 대한 이미지 업로드를 처리 할 플러그인을 만들었습니다. 이것은 모두 잘 작동합니다. 내가 할 수 있기를 원하는 것은 사용자가 삭제 한 경우 서버에서 이미지를 제거하여 orphanged 파일로 끝내지 않도록하는 것입니다.tinymce 삭제시 이미지 세부 정보 얻기

내가 TinyMCE에 초기화

<script src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script> 
<script type="text/javascript"> 
tinymce.init({ 
    selector: "textarea", 
    plugins: "autoresize", 

    toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image jbimages", 
    relative_urls: false, 
     setup : function(ed) { 
        ed.on("NodeChange", function(e) { 
     console.log('change event', e); 
       }); 
} 

});</script> 

이 나에게 내가 콘솔에서 볼 수있는 이벤트를 제공의 설정 부분을 사용하여 nodechange의 envent을 수신 할 수 있었다,하지만 난의 방법을 찾을 수 없습니다 img 제거가 수행되었음을 알리는 이벤트에서 뭔가를 얻음으로써 서버에서 이미지를 삭제할 수 있습니다.

나는 당신이 당신의 콘솔을로드하고 당신이 무슨 뜻인지 볼 이미지를 삭제하면이 여기 HERE

의 바이올린을 만들 수 있습니다. 제가 누락 된 이벤트의 속성이나 메소드가 있습니까? 사전

답변

3

내가 같은 일을하려고하지만, 많은 인터넷 트롤 어업 & 후 나는이 삭제 또는 백 스페이스 키 편집기를보고 있었다 달성하기 위해 볼 수있는 유일한 방법 디버깅했다가 밀려 한동안

감사합니다 편집기에서 이미지가 선택되었습니다.

그래서 당신의 tinymce.init "설정"함수 내에서 : 나는 새로운 플러그인 내에서이를 설정

ed.on('KeyDown', function (e) { 

    if ((e.keyCode == 8 || e.keyCode == 46) && editor.selection) { // delete & backspace keys 

     var selectedNode = editor.selection.getNode(); // get the selected node (element) in the editor 

     if (selectedNode && selectedNode.nodeName == 'IMG') { 

      MyCallback(selectedNode.src); // A callback that will let me invoke the deletion of the image on the server if appropriate for the image source. 
     } 
    } 
}); 

, 그 플러그인의 설정 중 하나로 콜백을 추가했습니다.

+1

흥미 롭군요. 여러 요소가있는 Ctrl + A를 사용하면 어떻게됩니까? img 's와 p 's를 말하고 삭제 하시겠습니까? – Chinmay

+0

좋은 지적. 간단히 말해서, 그렇지 않습니다. 나는 Ctrl + A를 시도하고 "selectedNode"는 TinyMCE IFrame의 "body"태그입니다. 선택된 노드의 자식 노드 (이미지가 아닌 경우)를 재귀 적으로 반복하고 처리하기 위해 모든 이미지를 선택하면이 방법을보다 강력하게 만들어야합니다. 하나 이상의 이미지가 포함 된 노드를 삭제할 수있는 다른 경우가있을 것이라 확신합니다. 내가 볼 수있는 한, 두 개 이상의 노드를 선택할 수 없습니다 (Ctrl 키를 누른 채 마우스를 클릭하여 강조 표시 한 것입니다) – JohnB

+0

예. 내가 한 일은 내 구현에 매우 특정한 것이었다. 내 이미지를 URL에 연결했는데 (어쨌든 데이터베이스에 연결 고리를 유지해야한다). 서버는 제출시 html에있는 이미지를 제외한 모든 이미지를 제거합니다. – Chinmay

관련 문제