'자동저장'에 해당되는 글 1건

  1. 2010.01.12 다음에디터 자동저장 기능 해보기? (3)
is윤군이야기2010.01.12 11:20
공개된 다음에디터에 자동 저장 기능이 있는줄 알았는데...
오늘 방명록에 서종훈 라는 님께서 자동저장 부분을 구현 하는데.. 잘 안된다라는 이야기를 하셔서..
아! 안되는구나 하고 알았다..

댓글로 달자니.. 좀 그래서... 걍 간만에 포스팅 ㄱㄱ~~ ;;

예제를 보면..
    function setForm(editor) {
       var _formGen = editor.getForm();           
            var _content = editor.getContent();
            _formGen.createField(
                tx.textarea({
                    /* 본문 내용을 필드를 생성하여 값을 할당하는 부분 */
                    'name': "tx_content",
                    'style': { 'display': "none" }
                },
                _content)
            );
        .......................
        이하 생략 ... 밑에는 이미지 이름을 가져 오는부분..
}

머 이부분을 보면 .. 저장하기 버튼을 누르면 Editor.save(); 이걸 통해서 .
saver.js 의 (Trex.Save) 의 submit 함수가 호출되고 ... 여기서 save 함수를 통해서 ... 결과 확인 후에.. 500 ms 초 후에 form.submit을 호출 하는 구조다..

여기서 save 함수를 보면 일단 validForm 이놈을 한번 호출해서 값을 체크 한번 하고.. 여기서 통화하면 최종적으로 setForm 을 호출 해서 이곳에서 true를 리턴하면... 저정하는 구조인듯... ( 다음 에디터를 이용해서 저장을 한번도 안해본 1인... )

그래서 이분께서는.. setForm 에서 return true; 하는 부분을 지우시고 .. (이러면 ... 저장이 안되니 ... ) ajax를 통해서 .. 자동 저장을 구현하신듯 하다..

머 사설은 길었지만.... 나의 생각은 ajax를 통한 자동 저장 기능은 굳이.. Editor.save(); 이걸 통해서 안하고.. (어차피 save호출 한다고 해도 위에서 이야기 한 것 이외는 다른 기능이 없다.. ( 물론 submit 호출 되기전에..             this.editor.fireJobs(Trex.Ev.__ON_SUBMIT, this.editor); 이놈을 통해서 등록되어 있던 이벤트를 한번 실행 할 수 있는 기회가 있긴 하지만.. )

무튼 결론은... 걍 ajax 용 자동 저장 함수를 하나 만들고 .. 그곳에서  필요한 값을 만드는 해주면 될것 같다..

이분이 jQuery를 사용하시는것 같은디..

function autoSave() {
    var _formGen = Editor.getForm();
    var _content = Editor.getContent();

  if(!$('[name=auto_tx_content]')){
        Editor.getForm()._formGen.createField(
        tx.textarea({
         /* 본문 내용을 필드를 생성하여 값을 할당하는 부분 */
        'name': "auto_tx_content",
        'style': { 'display': "none" }
        }, _content));    
  }else{
    $('[name=auto_tx_content]').val(_content);
  }
  .post('xxxxxx', {tx_content: Editor.getContent());
}

jquery의 val은 textarea의 vaule 값은 안가져 오나보다..ㅋ

머 이렇게 하면 되지 않을까 싶은 생각이 든다... 물론.. title 나 이미지 경로 같은 부분은 추가 되어야 하긴 하지만.. ;;
필드를 생성하는 부분은 맘에 들지 않는다면 jQuery로 직접 생성해줘도 되구요..
createField: function(elField) {
        this.elForm.appendChild(elField);
    },
이게 전부이니까... ㅎ

냠냠 ... 이렇게 구현 하면 되지 않을까 싶긴한데.. 일단 테스트를 안해본거라서 ^^ ;; 틀만 한번.. 생각해보았답니다..

자동저장은 그냥 Editor.save()를 사용하지 않고 .. 따로 구현 해도 될것 같다는 저의 생각입니다..

Posted by is윤군