Вставка в самом конце в FCKeditor

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

24.08.2008 18:00:47
3 ОТВЕТА

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

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

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

2
3.12.2015 19:43:24
var oEditor = FCKeditorAPI.GetInstance('Editor_instance') ;
    OldText=oEditor.GetXHTML( true );

    oEditor.SetData( OldText+"Your text");
1
6.04.2011 11:06:41

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

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

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

} catch (err) { }
1
6.04.2011 11:03:31