在FCKeditor中插入到最后

发布于 2024-07-04 12:07:09 字数 756 浏览 8 评论 0原文

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

FCKeditor has InsertHtml API (JavaScript API document) that inserts HTML in the current cursor position. How do I insert at the very end of the document?

Do I need to start browser sniffing with something like this

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 ) ; 
} 

or is there a blessed way that I missed?

Edit: Of course, I can rewrite the whole HTML, as answers suggest, but I cannot believe that is the "blessed" way. That means that the browser should destroy whatever it has and re-parse the document from scratch. That cannot be good. For example, I expect that to break the undo stack.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦里寻她 2024-07-11 12:07:09

将有问题的行 :element.insertAdjacentHTML('beforeBegin', html); 替换

为以下 jquery 代码:

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

} catch (err) { }

replace the buggy line :element.insertAdjacentHTML('beforeBegin', html);

with this jquery code:

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

} catch (err) { }
沧桑㈠ 2024-07-11 12:07:09
var oEditor = FCKeditorAPI.GetInstance('Editor_instance') ;
    OldText=oEditor.GetXHTML( true );

    oEditor.SetData( OldText+"Your text");
var oEditor = FCKeditorAPI.GetInstance('Editor_instance') ;
    OldText=oEditor.GetXHTML( true );

    oEditor.SetData( OldText+"Your text");
梦年海沫深 2024-07-11 12:07:09

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

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

希望有帮助!

It looks like you could use a combination of GetHTML and SetHTML to get the current contents, append your html and reinsert everything into the editor. Although it does say

Note that when using this method, you will lose any listener that you may have previously registered on the editor.EditorDocument.

Hope that helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文