Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.04;
Скачать: CL | DM;

Вниз

WebBrowser: поиск всех элементов с нужным ID   Найти похожие ветки 

 
Mr. D.   (2007-02-06 22:38) [0]

Имеется HTML страничка, в которой нужно динамически заменять элементы на данные, приходящие по сети. Страничка аля:

<SPAN id="param1">Параметр1</SPAN>
<SPAN id="param2">Параметр2</SPAN>


Я принимаю данные, которые нужно отобразить, и далее средствами движка IE ищу элементы по ID, чтобы их заменять. Навроде такого:

Document := WebBrowser.Document as IHtmlDocument2;
Collection := Document.all;
Element := Collection.item("param1", NULL) as IHTMLElement;
if assigned(Element)
 Element.innerHTML := "что-то там";


Но при этом если в документе несколько элементов с нужным ID, например сверху и снизу страничи:

<SPAN id="param1">Параметр1</SPAN>
....
......
...
<SPAN id="param1">Параметр1</SPAN>


То заменяется только верхний SPAN...

А вот как найти все элементы с нужным ID?


 
palva ©   (2007-02-06 23:04) [1]

> Element := Collection.item("param1", NULL) as IHTMLElement;
А если попробовать вместо NULL поставить 1 ?


 
Mr. D.   (2007-02-06 23:11) [2]

и до какого числа перебирать?

Мне кажется не то...


 
palva ©   (2007-02-06 23:15) [3]

и до какого числа перебирать?
Length ?
На JavaScript все когда-то делал элементарно. На Delphi надо пробовать, читать MSHTML. В общем не знаю.


 
palva ©   (2007-02-06 23:35) [4]

> Мне кажется не то...
А почему вы собственно, сами не хотите попробовать? Я попробовал, - у меня получилось. На слабо меня взяли?
До свидания (с) Думкин.


 
ИА   (2007-02-07 09:45) [5]

Цикл по document.all и вызывать getAttribute для каждого элемента.
Если у вас только span то IHTMLDocument3.GetElementsByTagName() вместо all


 
Gero ©   (2007-02-07 16:30) [6]

ID должен быть уникальным.


 
Mr. D.   (2007-02-07 16:48) [7]

Gero, я думал об этом. А как тогда решить проблему, что нужно заменить теги в нескольких местах странички (например, сверху и снизу), причем сколько таких мест я не знаю, текстс транички мне заранее не известен, нужно просто как-то выделить группу элементов.


 
Gero ©   (2007-02-07 16:52) [8]

Используй свойство name и GetElementsByName — она возвращает коллекцию элементов с нужным name.


 
Mr. D.   (2007-02-08 01:44) [9]

ясно... Я было думал, что как раз name это уникальное название, а ID объединяет группы. Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2007.03.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.072 c
15-1171202518
Kerk
2007-02-11 17:01
2007.03.04
25й час


6-1157962772
JMorrison
2006-09-11 12:19
2007.03.04
Утечка памяти BDS win32 Indy 10


1-1168354965
sia
2007-01-09 18:02
2007.03.04
принудительное закрытие приложения


1-1168460773
GanibalLector
2007-01-10 23:26
2007.03.04
Дин.массив на выходе ф-ции и утечка


2-1170873071
Yozch1
2007-02-07 21:31
2007.03.04
Некорректная работа wsMaximized