2008-08-24 10 views
1

FCKeditor에는 HTML을 현재 커서 위치에 삽입하는 InsertHtml API (JavaScript API document)가 있습니다. 문서 맨 끝에 어떻게 삽입합니까? 맨 마지막에 FCKeditor에 삽입

내가이

if (element.insertAdjacentHTML) // IE 
    element.insertAdjacentHTML('beforeBegin', html) ; 
else        // Gecko 
{ 
    var oRange = document.createRange() ; 
    oRange.setStartBefore(element) ; 
    var oFragment = oRange.createContextualFragment(html); 
    element.parentNode.insertBefore(oFragment, element) ; 
} 

또는 내가 놓친 축복받은 방법이 같은 뭔가 냄새 브라우저를 시작해야합니까?

편집 : 답변 : 물론 전체 HTML을 다시 작성할 수 있지만 대답은 "축복받은"방법이라고 생각할 수 없습니다. 즉, 브라우저가 갖고있는 것을 파괴하고 문서를 처음부터 다시 파싱해야합니다. 그것은 좋을 수 없다. 예를 들어, 실행 취소 스택이 손상 될 것으로 예상합니다.

답변

2

GetHTML과 SetHTML의 조합을 사용하여 현재 내용을 가져온 다음 HTML을 추가하고 모든 것을 편집기에 다시 삽입 할 수있는 것처럼 보입니다. 그것이라고해도

이 메서드를 사용하면 이전에 editor.EditorDocument에 등록한 리스너를 잃게됩니다.

희망 하시겠습니까?

1
var oEditor = FCKeditorAPI.GetInstance('Editor_instance') ; 
    OldText=oEditor.GetXHTML(true); 

    oEditor.SetData(OldText+"Your text"); 
1

하면이 jQuery 코드와 버그 라인 :element.insertAdjacentHTML('beforeBegin', html);

교체 :

try { 
     $(html).insertBefore($(element)); 
     // element.insertAdjacentHTML('beforeBegin', html); 

} catch (err) { }