Вставка в самом конце в FCKeditor - PullRequest
2 голосов
/ 24 августа 2008

FCKeditor имеет InsertHtml API ( Документ JavaScript API ), который вставляет HTML в текущую позицию курсора. Как вставить в самый конец документа?

Нужно ли мне начинать прослушивание браузера с чем-то вроде этого

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, как подсказывают ответы, но я не могу поверить, что это «благословенный» путь. Это означает, что браузер должен уничтожить все, что у него есть, и заново проанализировать документ с нуля. Это не может быть хорошо. Например, я ожидаю, что это сломает стек отмены.

Ответы [ 3 ]

2 голосов
/ 24 августа 2008

Похоже, что вы можете использовать комбинацию GetHTML и SetHTML для получения текущего содержимого, добавления html и повторной вставки всего в редактор. Хотя это говорит

Обратите внимание, что при использовании этого метода вы потеряете любого слушателя, которого вы, возможно, ранее зарегистрировали в редакторе. EditorDocument.

Надеюсь, это поможет!

1 голос
/ 06 апреля 2011

заменить глючную строку :element.insertAdjacentHTML('beforeBegin', html);

с этим кодом jquery:

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

} catch (err) { }
1 голос
/ 06 апреля 2009
var oEditor = FCKeditorAPI.GetInstance('Editor_instance') ;
    OldText=oEditor.GetXHTML( true );

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