jQuery:Batiste Rich-Text Editor - 如何更新内容?

时间:2009-04-09 09:54:28

标签: jquery richtext rte

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

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

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

关于如何实现这一点的任何想法?

3 个答案:

答案 0 :(得分:1)

RTE用iframe替换textarea但保留相同的ID。要访问iframe的内容,请尝试使用此类内容。

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

答案 1 :(得分:1)

我想回应肖恩在这里所说的话,但我也想举一个实例。请注意,此示例执行的操作之一是将全局变量中的INITIAL_CONTENT存储起来,因为RTE控件替换了textarea,而不是隐藏它,我觉得有些不安。

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

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

答案 2 :(得分:0)

您可以从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

干杯:)