在FCKeditor的最后插入

时间:2008-08-24 18:00:47

标签: javascript dom plugins fckeditor

FCKeditor具有InsertHtml API(JavaScript API document),可在当前光标位置插入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 个答案:

答案 0 :(得分:2)

看起来你可以使用GetHTML和SetHTML的组合来获取当前内容,附加你的html并将所有内容重新插入到编辑器中。虽然它确实说了

  

请注意,使用此方法时,您将丢失先前在editor.EditorDocument上注册的侦听器。

希望有所帮助!

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

替换错误的行:element.insertAdjacentHTML('beforeBegin', html);

使用此jquery代码:

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

} catch (err) { }