【问题标题】:jQuery: Batiste Rich-Text Editor -- how to update content?jQuery: Batiste 富文本编辑器——如何更新内容?
【发布时间】:2009-04-09 09:54:28
【问题描述】:

我正在使用这个轻量级的 jQuery 插件来创建富文本编辑器:Batiste RTE jQuery Plugin

作为更复杂表单的一部分,我具有清除更改的功能,我也希望能够为编辑器执行此操作。

我将初始内容保存在一个变量中,我想做一些类似的事情: setContent(INITIAL_CONTENT),但我找不到访问 RTE 对象的方法,因为 $("textarea").rte(some-options-here) 返回 textarea 对象而不是 rte 对象。

你知道如何做到这一点吗?

【问题讨论】:

    标签: jquery richtext rte


    【解决方案1】:

    我只想附和 Shaun 在这里所说的话,但我也想举一个实际的例子。请注意,此示例所做的其中一件事是将 INITIAL_CONTENT 存储在全局变量中,因为 RTE 控件替换了文本区域,而不是隐藏它,我觉得这有点令人不安。

    如果您担心它位于全局变量中,您可能会在创建 DOM 后将初始内容存储在 DOM 的某个成员中,但这对于您的目的来说可能是不必要的。

    您尝试完成的示例: http://jsbin.com/ixipu

    【讨论】:

    • 感谢您抽出宝贵时间提出示例!
    【解决方案2】:

    RTE 将 textarea 替换为 iframe,但保持相同的 ID。要访问 iframe 的内容,请尝试以下操作。

    $("#textarea_ID").contents().find("body").html(INITIAL_CONTENT);
    

    【讨论】:

      【解决方案3】:

      您可以从 iframe 中抓取正文,然后设置/获取内容:

      var $R = function(sel, newContent) {
          return $('body', $(sel).contents()).html(newContent || undefined); 
      };
      var iframe = $('iframe.rte-zone')[0];
      alert($R(iframe)); // alerts the RTE's content
      $R(iframe, '<strong>Lorem <em>ipsum</em></strong>'); // sets the content of the RTE to "<strong>Lorem <em>ipsum</em></strong>"
      

      如果你愿意,也可以have a look at some examples。

      干杯:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-26
        • 1970-01-01
        • 1970-01-01
        • 2017-04-22
        • 2011-06-18
        • 1970-01-01
        相关资源
        最近更新 更多