2009-04-09 54 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如果你想至。

歡呼聲:)