Работа с буфером обмена и эл-тами ХТМЛ на Javascript
Интересует вопрос работы с буфером обмена и элементами HTML на JavaScript. Если есть какая подробная хорошая статья, кинте ссылочку, пожалуйста.
Но это в общем. Если быть более конкретным - меня интересует - как например определить, жирный ли шрифт во вставляемом тексте или нет и т.п.
Хочу свой визуальный редактор написать.
Эксперементировал со свойством contenteditable в теге blockquote. В IE вставляет в эллемент HTML даже картинки. Но как потом это всё (я имею ввиду, вместе с форматом текста) передать PHP-скрипту на обработку?
Я делаю некий полу-WYSIWYG редактор. Тоесть в верхней части страницы поле с bb-тегами (кнопочками) и поле textarea.
В нижней - вьювер, который отображает результат форматирования bb-тегами текста в верхнем поле textarea, обрабатывая тот текст каждый раз по нажатию кнопки в textarea с помощью ajax и php-парсера.
Получается неплохо. Однако хотелось бы сделать некую взаимозависимость: тоесть, в некоторых случаях удобно воспользоваться WYSIWYG, а в некоторых bb-тегами.
Поэтому я влепил во вьювер (который у меня есть просто тег blockquote) свойство contenteditable="true". Теперь я могу прямо туда вставлять уже отформатированный текст. Но как мне добится того, чтобы этот формат прочитывался от туда и вставлялся в textarea?
И как управлять этим форматом (например, сделать выделенный фрагмент текста жирным (пока я знаю, что это можно зделать комбинацией ctrl+b))?
В IE для работы с буфером обмена используется объект:
Код:
window.clipboardData
вот только Opera не поддерживает работу с буфером обмена, FireFox - да. Я скоро об этом статейку на блоге напишу.
2 автор: а это хорошо? при каждом нажатии клавиши отправлять ajax запрос? ))) а если у меня скорость печати 120 символов в минуту, хотябы....
ну а если при нажатии кнопочки "Show me result!!!" показывать результат форматирования... то это уже, имхо, не визивиг...
порыскайте по сорцам известных редакторов, TyniMCE, FCKEditor... посмотрите как сделаны они. может чего нового для себя найдёте =)
удачи!