在 FCKeditor 的最后插入

Inserting at the very end in FCKeditor

提问人:buti-oxa 提问时间:8/25/2008 最后编辑:AtheistP3acebuti-oxa 更新时间:12/11/2015 访问量:1301

问:

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,但我不敢相信这是“有福”的方式。这意味着浏览器应该销毁它所拥有的任何内容,并从头开始重新解析文档。这不可能是好事。例如,我希望这会破坏撤消堆栈。

JavaScript DOM 插件 fckeditor

评论


答:

2赞 Ryan Doherty 8/25/2008 #1

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

请注意,使用此方法时,您将丢失之前在编辑器上注册的任何侦听器。编辑器文档。

希望对您有所帮助!

1赞 Vikrant 4/6/2009 #2
var oEditor = FCKeditorAPI.GetInstance('Editor_instance') ;
    OldText=oEditor.GetXHTML( true );

    oEditor.SetData( OldText+"Your text");
1赞 francois saab 4/6/2011 #3

更换越野车线路:element.insertAdjacentHTML('beforeBegin', html);

使用以下 jquery 代码:

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

} catch (err) { }