Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #72, ДЕКАБРЬ 2004 г.

Виртуальная голубятня

Константин Клягин

Хакер, номер #072, стр. 072-120-4


Редактируем

Подсластим пилюлю аскетичности нашего веб-мейла удобным интерфейсом для редактирования отсылаемых сообщений. Выбор был остановлен на HTMLArea - заменителе (а скорее, расширителе) стандартного <textarea> с возможностью визуального редактирования HTML-кода. Выглядит это практически как редактор Word в веб-странице (http://www.dynarch.com/projects/htmlarea/). Расширителем элемента <textarea> этот компонент я назвал не зря. Он именно навешивается на <textarea> , расширяя его возможности. Работает он только в Internet Explorer и Mozilla. Но что же будет при обращении к нему браузером, который не поддерживается? Не надо нервничать. Что бы ни было, по сравнению с апокалипсисом это будет ничто. Думай позитивно.

А если серьезно, то ничего страшного не случится. HTMLArea просто не загрузится, а тэг <textarea> будет интерпретирован как обычный элемент для редактирования многострочного текста в HTML.

Прикрутка HTMLArea к странице очень хорошо описана в документации, что идет в комплекте. Вкратце, делается это так. Для начала распакуем архив HTMLArea-3.0-rc1.zip (сейчас это последняя версия) в подкаталог htmlarea/ в папку со скриптами poomail. Затем возьмемся за страницу, в которой контрол будет использоваться. Вставкой на JavaScript выставим параметры, используемые при загрузке основного скрипта:

<script type="text/javascript">

_editor_url = "htmlarea/";

_editor_lang = "ru";

</script>

Эти две переменные задают путь к вспомогательным файлам и язык сообщений соответственно. Благо, добрые люди успели перевести сообщения на великий и могучий. Основной код подключаем так:

<script type="text/javascript" src="htmlarea/htmlarea.js"> </script>

А теперь определим функцию, которая будет вызываться по окончании загрузки страницы. В ней будет создаваться экземпляр класса HTMLArea, привязанный к определенному элементу <textarea> .

<script type="text/javascript">

function initEd() {

ed = new HTMLArea("ta");

ed.generate();

}

</script>

Чтобы по имени ta класс нашел нужный элемент, при определении оного нужно задать атрибут id, вот так:

<textarea name="text" rows="15" cols="100" style="width: 100%;" id="ta">

Ну и наконец, в <body> пропишем JS-функцию, которую нужно звать по окончании загрузки страницы:

<body onLoad='initEd()'>

В нашем случае все это происходит в файле send.php, который, помимо всего прочего, предоставляет еще и возможность редактирования сообщения перед отправкой. Грузится страница с <textarea> , имеющим нужный id. В ней же подключается и код HTMLArea. По окончании загрузки вызывается функция, которая делает из какашки конфетку. Так из простого <textarea> получается встроенный в страницу визуальный редактор HTML.

Назад на стр. 072-120-3  Содержание  Вперед на стр. 072-120-5