2

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

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

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

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

4

3 回答 3

1

RTE 用 iframe 替换 textarea 但保持相同的 ID。要访问 iframe 的内容,请尝试这样的操作。

$("#textarea_ID").contents().find("body").html(INITIAL_CONTENT);
于 2009-04-13T15:33:00.347 回答
1

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

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

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

于 2009-04-13T18:18:29.983 回答
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>"

如果您愿意,您也可以查看一些示例。

干杯:)

于 2009-04-14T16:25:13.350 回答