2008-08-24 3 views
1

FCKeditor имеет API-интерфейс InsertHtml (JavaScript API document), который вставляет HTML в текущую позицию курсора. Как вставить в самом конце документа?Вставка в самом конце 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 и вставить все в редактор. Хотя он действительно говорит

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

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

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

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

заменить ошибочный линию :element.insertAdjacentHTML('beforeBegin', html);

с этим Jquery код:

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

} catch (err) { } 
Смежные вопросы