Запрет копирования/вставки для копирования стиля веб-страницы в редактор форматированного текста

Я пробую уже два дня несколько легких текстовых редакторов JavaScript (rte), таких как nicEdit, mooEditable, MooRTE (два последних были рассмотрены, потому что они используют фреймворк mootools, который я использую для этого проекта).

Моя проблема в том, что со всеми ними, когда я копирую предварительно отформатированный текст с веб-страницы (со словами, выделенными жирным шрифтом, ссылками и т. д.), а затем вставляю его в редактор, он выглядит уже отформатированным.

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

Я просто хочу, чтобы мои пользователи могли выполнять базовое форматирование с помощью редактора, например выделять текст жирным шрифтом, курсивом, добавлять ссылку и делать отступы для абзацев.

Альтернативой может быть showdown (который, я уверен, используется stackoverflow), потому что этот тип редакторов (с окном предварительного просмотра) не страдают от вышеупомянутой проблемы (когда вы вставляете что-то в текстовую область, это неформатированный текст). Однако я не уверен, что это подойдет для моего случая, потому что редактор будет использоваться для написания длинных статей (намного длиннее, чем большинство сообщений stackoverflow). В этом случае я думаю, что было бы лучше иметь правильный редактор, который мгновенно отображает вещи (я имею в виду прямо в текстовой области, а не в окне предварительного просмотра). А настоящий WYSIWYG-редактор, на мой взгляд, более заманчив и удобен в использовании.

Есть ли простой способ изменить RTE, чтобы при вставке текста он отображался неформатированным? Или вы думаете, что мне следует использовать решение, которое использует stackoverflow? (showdown или подобное) Или вы знаете RTE, у которого нет проблемы с копированием и вставкой, которую я упомянул?

Обратите внимание, что я не пробовал CKeditor, FCKEditor и TinyMCE, потому что они слишком сложны (тяжелы), а вариант от YUI выглядит хорошо, но для работы ему нужна вся библиотека.

Спасибо,

Пушистая Терн


person nimser    schedule 09.07.2010    source источник
comment
Почему нельзя использовать toggleview (в mooEditable или что-то подобное) перед вставкой, чтобы получить только текст, а затем переключить его обратно в форматированный текст, чтобы избавиться от форматирования. Таким образом, пользователь может выбрать, хочет ли он сохранить стиль.   -  person Vinodh Ramasubramanian    schedule 09.07.2010


Ответы (1)


Вы копируете из источника форматированного текста и вставляете в место назначения форматированного текста. По умолчанию вы получите форматированный текст в месте назначения. Единственный способ обойти это — каким-то образом зафиксировать событие вставки, перенаправить операцию вставки в поле обычного текста, а затем скопировать неформатированный текст из поля обычного текста в место назначения для форматированного текста.

  1. Используйте обработчик onPaste для захвата событий вставки (не работает в Firefox или Opera)
  2. Используйте скрытое поле, чтобы вставить в него выделенный текст.
  3. Вставьте значение скрытого поля в расширенное назначение в месте расположения курсора.

Не знаю, откуда берется прибыль, но вот так.

person Sparafusile    schedule 15.07.2010