我正在使用这个轻量级jQuery插件来创建一个富文本编辑器:Batiste RTE jQuery Plugin
作为更复杂形式的一部分,我具有清除更改的功能,我希望能够为编辑器执行此操作。
我将初始内容保存在变量中,我想做类似的事情:
setContent(INITIAL_CONTENT),但我找不到访问RTE对象的方法,因为
$("textarea").rte(some-options-here)
返回textarea
对象而不是rte
对象。
关于如何实现这一点的任何想法?
答案 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。
干杯:)