Веб-программистам. Как бы вы реализовали задачу визуального текстового редактора?

программирование JavaScript dom веб-разработка текстовый редактор

Задачей является написать примитивный вариант текстового редактора, где на веб-странице можно:
- ходить курсором (отображать курсор, реагировать на мышь и курсорные клавиши-стрелки)
- выделять текст мышью или с шифтом
- применять к выделенному тексту изменения отображения: жирность, наклон, величина, цвет, шрифт.
Как это достичь наиболее простым путём? Каждую букву на время редактирования заключить в тег SPAN? Мне не лень написать скрипт, который потом пройдётся по всем SPAN-ам, но может есть ещё какой-нибудь вариант? Мышью можно узнать между какими буквами внутри текстовой ноды нажали и между какими отпустили, чтобы применить потом команду только к выделенной области? B, кстати, её нужно выделить, и отменить реакцию браузера на это событие - наверное отключать выделение постфактум, ведь нельзя отключить сам процесс выделения текста браузером кроссбраузерно?

Примечание:
Вчера в 23:24 Ell Rion Ого-го!!! Если это работает во всех современных браузерах (Осёл не в счёт), то скорее всего это именно то, что нужно.
Я велосипедщик, мне не нужен чужой код. Надо написать "строго то, что нужно, ничего более и без всяких jQuery".

Примечание:
holden321: "Как успехи?"
Сейчас могу только кратко сказать: да, свойство "contenteditable" - то, что нужно. Вдобавок тогда-же нашёл на основе него готовый редактор (с пиратским названием, очень маленький - килобайт 100 все 4 файла, без всяких jquery), в который осталось добавить свои кнопки. Сейчас название не могу сообщить, т.к. всё лежит на другом ПК. Позже отпишу.
Ответы:
Гугли wysiwyg редактор
Ты найдёшь тучу готовых решений, и то как это можно реализовать самому.
Ну примитивным он не получится по определению, мб хотели написать компактного или простого в обращении редактора. Присоединяюсь к предыдущему посту. Начал бы решать задачу с изучения чужого кода там примерно 6кб. http://habrahabr.ru/post/176897/
contenteditable для коренного тэга div.
Текст без стилей - просто текст.
Текст со стилем - span.
Это концепция. Остальное дело техники. Начните делать и задавайте конкретные вопросы по ходу.


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.