Forum Webscript.Ru
Программирование => JavaScript & JScript => Тема начата: A_Lex1979 от 10 Декабря 2002, 12:02:39
-
Подскажите пожалуйста, как лучше сделать, чтобы в поле textarea в браузере отображался форматированный текст (с заданным шрифтом, выделением болдом и т.д.).
На mail.ru подобный интерфейс используеться для создания расширенных сообщений в html-формате
-
A_Lex1979
Это не textarea
это:
-
т.е. textarea только для внешнего вида используеться, а редактирование происходит в слое?
-
ThE0ReTiC
Насколько я понял, это фича IE5.5, и Нетскейп ее игнорирует.
Какие существуют способы редактирования содержания textarea, поддерживаемые всеми браузерами? WYSIWYG в textarea, насколько я понимаю - это нереально. Или?
Каким образом можно, используя стандартный JS, обрамить выделенный в textarea текст тегами? Не добавить к textarea.value (как это делается в форме ответа этого форума), а именно обрамить выделенный участок текста? Или вставить, но в место расположения курсора?
И что за функция document.execCommand()? Тоже IE?
-
как вариант (работающий под ie5) - iframe, которому потом делают:
iframe_name.document.designMode = "On";
Еще есть спец. activeX
URL http://msdn.microsoft.com/archive/en-us/dnaredcom/html/dhedsdk.exe (там в архиве дока по установке и написанию скриптов)
Где почитать:
msdn.microsoft.com (основной источник информации)
exper.ural.ru (здесь про designMode = "On")
-
кстати вариант с IFRAME & designMode = "On" работает и под IE 4
-
Макс
Во-во, execCommand(), кажется, именно в designMode = "On" используется. Спасибо, почитаю. Я видел с помощью этой примочки совсем неплохо сделанный хтмл-редактор (http://mouse.org.ru/downloads/MouseDHTML/).
А как же с более стандартным подходом?
-
А как же с более стандартным подходом?
а что значит более стандартный? У всех броузеров свои методы построения online-редакторов (либо их [методов] нет вообще).
-
Макс
Я имел ввиду более стандартный (с точки зрения стандартных html и js) способ управлять содержимым textarea или того же div.
Каким образом можно, используя стандартный JS, обрамить выделенный в textarea текст тегами? Не добавить к textarea.value (как это делается в форме ответа этого форума), а именно обрамить выделенный участок текста? Или вставить, но в место расположения курсора?
Глянул я свойства (defaultValue, name, value) и методы (focus, blur, select) этого самого объекта textarea и понял, что, видимо многого хочу от жизни. Кроме
theform.message.value += "["+vbcode+"]";
, как здесь, наверное, ничего больше не придумаешь..
А iframe c designMode="On" действительно рульная штука.. Сам метод execCommand (http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/execCommand.asp) при работе только с document и TextRange работает, начиная с IE 4.0, а с использованием controlRange - начиная с IE 5.0.
А команды (http://msdn.microsoft.com/workshop/author/dhtml/reference/commandids.asp) от IE 4.0 (большинство) до IE 6.0.
Странно, что многие команды, которые на самом деле полноценно работают (во всяком случае в IE6.0), обозначены как "пока не поддерживаемые". В частности: strikethrough, subscript, superscript, undo и redo. Не подскажешь, где найти инфу о том, какие версии IE эти команды поддерживают?
В общем, для юзверей с IE вне всякого сомнения эту фичу использовать нужно.
Возникает вопрос: каков метод построения онлайн редакторов в NN? Хотя, возможно, достаточно иметь две версии: designMode="On" и textarea c добавлением тегов для всех остальных. Но все-таки интересно.
Кстати, спасибо огромное.
-
насколько я знаю, для NN есть какой-то специальный модуль для создания online-редактирования, но я с ним не работал. Где-то на sourceforge.net (по-моему) даже был проэкт, редактор под IE, NN , но ссылку и его название затерялись.