2009-04-09 35 views
2

我使用这个轻量级的jQuery插件创建富文本编辑器:Batiste RTE jQuery PluginjQuery:Batiste富文本编辑器 - 如何更新内容?

作为一个更复杂的形式的一部分,我有结算的功能改变,我希望能够做到这一点的编辑也是如此。

我一直在一个变量的初始内容,我想要做的事,如: setContent(INITIAL_CONTENT),但我不能找到一种方法来访问RTE对象,因为 $("textarea").rte(some-options-here)返回textarea对象,而不是rte对象。

有关如何实现此目的的任何想法?

回答

1

我只是回应肖恩在这里说的,但我也想举一个例子来说明它的行动。请注意,本示例所做的一件事是将INITIAL_CONTENT存储在全局变量中,因为RTE控件取代了textarea,而没有隐藏它,这让我感到有点不安。

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

你正在试图完成的例子: http://jsbin.com/ixipu

+0

感谢您花时间拿出这个例子! – Dan 2009-04-14 14:50:37

1

RTE用iframe替换textarea,但保持相同的ID。要访问iframe的内容,请尝试如下所示。

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

谢谢你的解决方案! – Dan 2009-04-14 14:51:20

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如果你想至。

欢呼声:)