Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > WebBrowser: редактирование документа.


Автор: Bear266 5.8.2006, 02:46
Нигде не могу найти ответ на интересующий меня вопрос.
Сам создаю html страничку и подгружаю html код в webbrowser.

Например
Код

<HTML><HEAD></HEAD>
<BODY>
<B><FONT color=#808080>Строка 1</FONT> </B>
<B><FONT color=#808080>Строка 2</FONT> </B>
<B><FONT color=#808080>Строка 3</FONT> </B>
</BODY></HTML>


Потом добавляю в документ еще одну строчку таким кодом
Код
var
  WebDoc: HTMLDocument;
  WebBody: HTMLBody;
begin
htmlstring:= <B><FONT color=#808080>Строка 4</FONT> </B> 
WebBody := wb.document.body as HTMLBody;
  WebBody.insertAdjacentHTML('BeforeEnd', HtmlString);


Вопрос... как мне удалить из документа например вторую строку:
"<B><FONT color=#808080>Строка 2</FONT> </B>"
не перегружая страницы ессесно... что бы в нем получилось
Код

<HTML><HEAD></HEAD>
<BODY>
<B><FONT color=#808080>Строка 1</FONT> </B>
<B><FONT color=#808080>Строка 3</FONT> </B>
<B><FONT color=#808080>Строка 4</FONT> </B> 
</BODY></HTML>

Можно ли окружать строчку отделить своими тегами типа <line1> </line1>
и тоже это как то использовать и удалять ? Примеров про прочтению тегов и их содержимых - куча... а удалению найти не могу. Заранее всем спасибо за ответы.

Автор: _hunter 8.8.2006, 11:43
а что мешает еще раз вставить текст (insertAdjacentHTML), но уже без этих тегов?
если нужно убирать какие-то конкретные теги -- обрами их div' ом и меняй ему видимость

Автор: Bear266 9.8.2006, 11:05
Ну изменение видимости мне не подходит... нужно именно вырезать текст... просто когда документ станет очень большой, добавление в него текста уже будет происходить не так быстро... а тем более перегрузка всего документа... поэтому нужно именно удаление.
Неужели это не распространенный вопрос?

Хочется работать с сабжем так же просто как и с TMemo например

Автор: _hunter 9.8.2006, 11:58
так работай... кто мешает?

Автор: Bear266 9.8.2006, 12:18
Цитата(_hunter @ 9.8.2006,  11:58)
так работай... кто мешает?

мешает незнание как это сделать.
Конкретно... добавить - знаю, удалить часть без перезагрузки - нет, знаешь ? подскажи плз ;) примерный код... я думаю как то с DOM моделью можно работать но удалить у меня не получилось... не докопался

Автор: _hunter 9.8.2006, 12:38
так в чем проблема? забираеш у него весь текст. удаляеш теги (это как-никак простой текст). заталкиваеш текст назад. все...

Автор: Bear266 9.8.2006, 13:12
я же объясняю... текст УЖЕ загружен. Забрать его оттуда (удалить все из вебброузера), исправить текст, запихнуть обратно мне НЕ ПОДХОДИТ! Именно с веб-броузером взаимодействовать никак нельзя?

Зы. и к ому же мне нужно сохранение скролла. Пользователь налистал где то на середину... а я взял всю инфу загрузил туда заново - следовательно - скролл потерялся.... да и если он в это время им водить будет ???
Вообщем как я уже сказал альтернативные варианты мне не помогут, буду очень признателен, если мне подскажут вариант редактирования и удаления текста прямо в вебброузере

Автор: December 9.8.2006, 21:57
MSDN - IHTMLDOMNode Interface

В качестве домашнего задания по извращению можно также предложить оперировать свойством innerHTML у IHTMLElemen'a.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)