jQuery: Batiste Rich-Text Editor - как обновить контент? - PullRequest
2 голосов
/ 09 апреля 2009

Я использую этот легкий плагин jQuery для создания текстового редактора: Batiste RTE jQuery Plugin

Как часть более сложной формы, у меня есть функция очистка изменений , и я хочу сделать это также для редактора.

Я сохраняю исходное содержимое в переменной и хочу сделать что-то вроде: setContent (INITIAL_CONTENT), но я не могу найти способ доступа к объекту RTE, потому что $("textarea").rte(some-options-here) возвращает объект textarea, а не объект rte.

Есть идеи, как это сделать?

Ответы [ 3 ]

1 голос
/ 13 апреля 2009

Я бы просто повторил то, что сказал здесь Шон, но я также хотел бы привести пример этого в действии. Обратите внимание, что в этом примере хранится INITIAL_CONTENT в глобальной переменной, потому что элемент управления RTE заменяет текстовую область, а не скрывает ее, что, на мой взгляд, немного нервирует.

Если вы обеспокоены тем, что это глобальная переменная, вы, возможно, могли бы сохранить исходное содержимое в каком-то члене DOM после его создания, но это, вероятно, не нужно для ваших целей.

Пример того, что вы пытаетесь достичь: http://jsbin.com/ixipu

1 голос
/ 13 апреля 2009

RTE заменяет текстовое поле на iframe, но сохраняет тот же идентификатор. Чтобы получить доступ к содержимому iframe, попробуйте что-то вроде этого.

$("#textarea_ID").contents().find("body").html(INITIAL_CONTENT);
0 голосов
/ 14 апреля 2009

Вы можете извлечь тело из 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>"

Вы также можете взглянуть на некоторые примеры , если хотите.

Приветствия:)

...