Есть ли у TinyMCE полезные события фокусировки / размытия? - PullRequest
2 голосов
/ 24 октября 2009

Я хочу, чтобы по умолчанию текст, такой как «Введите содержимое здесь», отображался при первой загрузке редактора, но я хочу, чтобы этот текст исчезал, когда пользователь щелкает / фокусирует внимание на области содержимого. Затем, если они «размывают» (выходят) из области содержимого, ничего не вводя, я хочу, чтобы «текст по умолчанию» снова появлялся в редакторе.

После поиска в Google и просмотра вики TinyMCE, похоже, что есть onActivate и onDeactivate событий, которые должны частично это делать; однако на вики-странице onDeactivate есть заявление об отказе от ответственности, в котором говорится, что это не настоящий метод «размытия», плюс я не смог заставить работать события onActivate (по крайней мере, с использованием FF 3.5).

Кто-нибудь еще нашел решение для этого? Я использую стандартную установку TinyMCE и загрузил jQuery для других моих задач JS для создаваемого сайта, поэтому я открыт для некоторого мастера jQuery, чтобы это произошло, если в API TinyMCE ничего не доступно.

Спасибо, Сет

Ответы [ 2 ]

2 голосов
/ 28 октября 2009

Событие onNodeChange tinyMCE сработает, если пользователь перейдет в редактор. используйте tinyMCE onMouseDown, чтобы обнаружить щелчок. между этими двумя событиями вы сможете определить, когда пользователь активировал редактор. используйте $(body).click() на главной странице, чтобы определить, когда пользователь выходит из редактора и размывает его.

Я бы также не стал вводить текст по умолчанию в качестве фактического значения редактора. вместо этого я бы сделал iframe / body редактора прозрачным и поместил бы значение по умолчанию за ним в абсолютно позиционированный div. используя указанные выше триггеры, просто покажите div () / hide (), когда вы хотите, чтобы значение по умолчанию [dis] появилось.

0 голосов
/ 24 октября 2009

Хммм, хитрый ...

вот идея, которую вы могли бы попробовать:

Мы установили, что onActivate работает нормально, поэтому подключите код для этого ... сейчас, для onDeactivate ...

tinyMCE сохраняет свой контент в оригинальной (теперь скрытой) текстовой области, которую он заменяет. Вот как контент отправляется на сервер при публикации формы.

Теперь, чтобы оторваться от редактора, пользователь должен щелкнуть что-нибудь еще на странице. С помощью jQuery вы можете прикрепить функцию $("body").click(), которая проверяет содержимое скрытой текстовой области (используя $(id_of_hidden_textarea).val()). Если содержимое пустое, установите для параметра «Ввести содержимое здесь ...» и текстовую область (используя val()), и экземпляр MCE (используя tinyMCE.setContent()).

Функция $("body").click() не будет срабатывать при нажатии на редактор, потому что он находится в iframe.

...