2010-06-22 3 views
6

Не уверен, что это возможно во всех современных браузерах, но есть ли способ, используя javascript/jquery для удаления всех html-тегов, форматирования css, кодов формата word doc и т. Д. из строки текста, когда она вставляется в область ввода страницы (в моем случае элемент задан как «contenteditable»), поэтому он всегда идет как чистый текст?Удаление любого html/форматирования/ect из текстовой строки при вставке через Javascript/JQuery?

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

заранее спасибо!

ответ

2

Возможно использование взлома, в котором используются текущие версии TinyMCE и CKEditor. Я описал в this answer.

0

Вероятно это возможно, но я бы сказал, что это нецелесообразно в качестве меры безопасности, так как любой код на стороне клиента может быть изменен. Как бы вы справились с ситуацией, когда отключен javascript? Или кто-то отправляет на вашу страницу при использовании firebug отладчиком и пропуском проверки?

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

Используйте проверку на стороне сервера и дезинфекцию для выполнения реальной работы.

+0

Проблема с изменением кода в этом случае не является проблемой в этом случае, поскольку это исключительно для внутренней системы администрирования, используемой известными доверенными пользователями, и недоступна публично. Система также требует, чтобы у вас был включен javascript, который решает эту проблему. И причина, по которой я не хочу делать это на стороне сервера, заключается в том, что редактор ввода, который я реализовал, позволяет вам сделать очень основное форматирование после факта (жирный шрифт, подчеркивание, гиперссылки и т. Д.), Поэтому мне пришлось бы разрешить некоторое форматирование, но запретить другим, что может стать беспорядочным. –

+0

@Bill Dami - доверенные пользователи, пока компания не решит открыть приложение, или злонамеренный пользователь внутри компании становится изгоем. – Oded

+0

Правда, однако я знаю, что это приложение никогда не будет открыто для публичных пользователей. И если работник, имеющий доступ к системе, стал изгоем, их возможность сохранить неанитированный ввод в редакторе была бы наименьшей из наших забот: -D –

2

Это уже есть в TinyMCE, поэтому я предлагаю развернуть его. Он также доступен как пакет jQuery и выпущен под LGPL, поэтому его можно использовать в коммерческом проекте.

См. http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste для пастообразных функциональных возможностей.

+0

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

+0

Да, это то, что я имел в виду, отправляя ответ: находите ли вы всю используемую структуру или просто извлекаете и настраиваете ее части для пользовательского использования. –