Предположим, нам нужно прочитать HTML-документ из файла и отобразить его содержимое.
Для решения этой задачи добавим команду ПрочитатьHTMLИзФайла. Обработчик команды заполним следующим образом (листинг 6.94).
Листинг 6.94. Обработчик команды «ПрочитатьHTMLИзФайла»
&НаКлиенте
Процедура ПрочитатьHTMLИзФайла(Команда)
ЧтениеHTML = Новый ЧтениеHTML;
ЧтениеHTML.ОткрытьФайл("c:\temp\text_html.html", "UTF-8");
ПостроительDOM = Новый ПостроительDOM;
ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML);
ЧтениеHTML.Закрыть();
АдресHTML = ПолучитьТекстHTML(ДокументHTML);
КонецПроцедуры
В этом обработчике мы создаем объект ЧтениеHTML и открываем для чтения HTML-файл методом ОткрытьФайл() этого объекта. Затем создаем объект ПостроительDOM и вызываем его метод Прочитать(), в который передаем объект чтения ЧтениеHTML. В результате на основе прочитанных данных будет создан объект ДокументHTML.
Теперь нам нужно получить HTML-текст этого документа, чтобы запомнить его реквизите АдресHTML. Для этого мы используем функцию ПолучитьТекстHTML(), в которую передаем полученный объект ДокументHTML (листинг 6.95).
Листинг 6.95. Функция «ПолучитьТекстHTML()»
&НаКлиенте
Функция ПолучитьТекстHTML(ДокументHTML)
ЗапиcьHTML = Новый ЗаписьHTML;
ЗапиcьHTML.УстановитьСтроку();
ЗаписьDOM = Новый ЗаписьDOM;
ЗаписьDOM.Записать(ДокументHTML, ЗапиcьHTML);
Возврат ЗапиcьHTML.Закрыть();
КонецФункции
В этой функции мы создаем объект ЗапиcьHTML и устанавливаем запись данных в строку методом этого объекта УстановитьСтроку(). Затем создаем объект ЗаписьDOM и вызываем его метод Записать(), в который передаем полученный в виде параметра ДокументHTML и объект записи ЗаписьHTML. Поскольку была установлена запись в строку, то при выполнении метода Закрыть() будет получена строка с текстом HTML-документа, который и возвращает функция ПолучитьТекстHTML().
После загрузки этого текста в реквизит АдресHTML (см. листинг 6.94) содержимое документа будет показано в поле HTML-документа в форме обработки и у этого поля будет вызвано событие ДокументСформирован. Согласно обработчику этого события (см. листинг 6.92) текст HTML-документа будет запомнен в реквизите Текст_HTML (рис. 6.15).
Рис. 6.15. Содержимое и текст прочитанного из файла HTML-документа
Поскольку текст HTML-документа отображается в текстовом поле, связанном с реквизитом Текст_HTML, то можно изменить этот текст, сохранить изменения и посмотреть результат.
Для этого добавим команду СохранитьИзменения. Обработчик команды заполним следующим образом (листинг 6.96).
Листинг 6.96. Обработчик команды «СохранитьИзменения»
&НаКлиенте
Процедура СохранитьИзменения(Команда)
Документ_HTML = Элементы.ПолеHTML.Документ;
Документ_HTML.documentElement.innerHTML = Текст_HTML;
КонецПроцедуры
В этом обработчике, используя свойство innerHTML объектной модели документа, мы заменяем текстовое содержимое HTML-документа на новое, хранящееся в реквизите Текст_HTML.
Например, изменив имя рисунка в тексте HTML-документа и нажав кнопку Сохранить изменения, мы увидим следующий результат (рис. 6.16).
Рис. 6.16. Содержимое и текст измененного HTML-документа