Как найти координаты тэгов через Document.getelementsbytagna

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
eugene2005
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 30.10.2005 (Вс) 21:35
Откуда: от Верблюда!

Как найти координаты тэгов через Document.getelementsbytagna

Сообщение eugene2005 » 30.08.2007 (Чт) 23:21

Как найти координаты тэгов через Document.getelementsbytagname vb6 webbrowser
В программе статистики есть WebBrowser, при загрузке страницы даёт статистику
А как мне добиться координат элементов ХТЛ относительно страницы и экрана?
К примеру хочу найти координаты всех линков или фреймов и тп. К примеру
Document.getelementsbytagname("a")(i)
Есть образец на ЯвеСкрипт, но хотелось бы родное внутреннее ВБ6 решение проблемы
Код: Выделить всё

function getElementPosition(elemId)
{
    var elem = document.getElementById(elemId);
    var w = elem.offsetWidth;
    var h = elem.offsetHeight;
    var l = 0;
    var t = 0;
   
    while (elem)
    {
        l += elem.offsetLeft;
        t += elem.offsetTop;
        elem = elem.offsetParent;
    }
    return {"left":l, "top":t, "width": w, "height":h};
}

'Пытаюсь конвертировать в ВБ6

Dim WithEvents doc As HTMLDocument
Dim elem As IHTMLElement
Set doc = ie.document
For x = 0 To  doc.getElementsByTagName("a").length - 1
Set elem = doc.getElementsByTagName("a")(x)

'Хочу этот бред перевести как положено в while
'"-PParent=" & elem.offsetParent.offsetParent.tagName & "=" & elem.offsetParent.offsetParent.id & _
'"-3Parent=" & elem.offsetParent.offsetParent.offsetParent.tagName & _
'"-4Parent=" & elem.offsetParent.offsetParent.offsetParent.offsetParent.tagName & _
'"-4Parent=" & elem.offsetParent.offsetParent.offsetParent.offsetParent.id


'Но этот вариант не получается вылетает с ошибкой непонятной

While (TypeOf elem Is IHTMLElement)
parentall = parentall & "-Parent Tag=" & elem.offsetParent.tagName & _
elem.id & ",l=" & elem.offsetLeft & ";t=" & elem.offsetTop & _
Set elem = elem.offsetParent
Wend
Next x


Помогите в этом участке кода пожалуйстя спасибо!

[/syntax]

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 31.08.2007 (Пт) 9:11

Код: Выделить всё
Set elem = doc.getElementsByTagName("a")(x)
Это ОЧЕНЬ медленно.

Код: Выделить всё
For each el in doc.getElementsByTagName("a")
    Set elem = el.offsetParent
    While Not elem Is Nothing
        ...
        elem = elem.offsetParent
    Wend
Next
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 62

    TopList