[텍스트큐브] tinyMCE 편집기 밖의 글 정보도 자동저장할 수 있게 하기
앞의 글(https://pat.im/1249)에서 텍스트큐브의 글 편집 화면을 띄웠을 때 자동저장이 너무 자주 되지 않게 하는 방법을 이야기하였다.
tinyMCE 편집기에서 다루는 글 본문은 고치면 임시 글로 자동저장이 되지만, 고쳐도 자동저장이 일어나지 않는 글 정보도 있다. 글 제목, 보람말(태그), 글 갈래(글 분류), 지역, 날짜, 공개여부, 권한처럼 텍스트큐브 편집 화면에서 글 본문의 위나 아래에 보이는 항목들이 그러하다.
위 화면에서 빨갛게 네모를 친 곳에 자동저장이 되지 않는 항목들이 있다. (위 편집기 화면은 글쓴이가 임의로 고쳐서 텍스트큐브 공식 배포판과 구성이 조금 다른 데가 있을 수 있다.)
끼우개(플러그인)로 들어간 tinyMCE 편집기 파일을 고치면 이 항목들도 자동저장이 되게 할 수 있다.
/plugins/ED_tinyMCE/index.php 파일에 보면 다음과 같은 내용이 있다.
editor.on('keyup',editorChanged);
editor.on('mousedown',editorChanged);
tinyMCE 편집기 안에서 글쇠를 누르거나 마우스를 딸깍하는 일(이벤트)이 일어나면 editorChanged 함수가 실행되어 자동저장을 하는 데에 이른다.
tinyMCE 밖에서도 글쇠를 누르거나 마우스를 딸깍했을 때에 같은 일이 벌어지게 하려면, 이 내용 아래에 다음 내용을 덧붙여서 전체 편집 화면에 대한 이벤트 핸들러(일거리 다루개)를 등록해 준다.
document.addEventListener('keyup', editorChanged);
document.addEventListener('mousedown', editorChanged);
이렇게 하면 본문 밖의 내용도 다르게 고쳤을 때에 5초 뒤에 자동저장 작업이 벌어진다. 보람말(태그)를 잔뜩 넣었는데 저장 단추를 누르지 않아서 싹 날아가는 일은 막을 수 있지만, 마우스로 딸깍해서 항목을 잘못 건드리는 것까지 민감하게 자동저장으로 이어지는 것은 흠이 될 수도 있다.
덧글을 달아 주세요