WB, DOM и позиция элемента.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

WB, DOM и позиция элемента.

Сообщение dr.MIG » 12.12.2007 (Ср) 20:05

Есть HTML'ка, на ней много таблиц, в том числе вложенных одна в другую. Можно ли как-нить получить координаты таблицы, причём не относительно контейнера в котором она размещается, а абсолютное положение на странице. Ну что-то типа того, что возвращает WB.Document.parentWindow.event.clientX. А то что-то утомительно как-то вычислять координаты, учитывая относительные координаты родительских элементов и положение полосы прокрутки. :cry:
Salus populi suprema lex

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 12.12.2007 (Ср) 23:57

А свойство offsetTop у элемента не подошло ?

Вроде правильно координаты берёт. Хотя посмотрел по описанию вроде должно возвращать координаты относительно родителя.

Код: Выделить всё
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY>

<TABLE>
<TR>
<TD>

<TABLE id="TABLE" style="position:absolute;left:200;top:100;">
<TR>
   <TD>1</TD>
</TR>
<TR>
   <TD>2</TD>
</TR>
<TR>
   <TD>3</TD>
</TR>
<TR>
   <TD>4</TD>
</TR>
<TR>
   <TD>5</TD>
</TR>
<TR>
   <TD>6</TD>
</TR>
<TR>
   <TD>7</TD>
</TR>
<TR>
   <TD>8</TD>
</TR>
<TR>
   <TD>9</TD>
</TR>
<TR>
   <TD>10</TD>
</TR>
<TR>
   <TD>11</TD>
</TR>
<TR>
   <TD>12</TD>
</TR>
<TR>
   <TD>13</TD>
</TR>
<TR>
   <TD>14</TD>
</TR>
<TR>
   <TD>15</TD>
</TR>
<TR>
   <TD>16</TD>
</TR>
<TR>
   <TD>17</TD>
</TR>
<TR>
   <TD>18</TD>
</TR>
<TR>
   <TD>19</TD>
</TR>
<TR>
   <TD>20</TD>
</TR>
<TR>
   <TD>21</TD>
</TR>
<TR>
   <TD>22</TD>
</TR>
<TR>
   <TD>23</TD>
</TR>
<TR>
   <TD>24</TD>
</TR>
<TR>
   <TD>25</TD>
</TR>
<TR>
   <TD>26</TD>
</TR>
<TR>
   <TD>27</TD>
</TR>
<TR>
   <TD>28</TD>
</TR>
<TR>
   <TD>29</TD>
</TR>
<TR>
   <TD id="TD30">30</TD>
</TR>
</TABLE>

</TD>
</TR>
</TABLE>

<SCRIPT language=vbscript>
Msgbox TD30.offsetLeft & "x" & TD30.offsetTop

</SCRIPT>
</BODY>
</HTML>


Winitar
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 06.07.2006 (Чт) 20:45
Откуда: Астана

Сообщение Winitar » 13.12.2007 (Чт) 19:09

Привет, dr.MIG! :D Хмм... А как всё это связано с VB? :?

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 13.12.2007 (Чт) 22:17

Привет! А как же. Страничка то отображается в элементе управления WebBrowser. :wink:
ALX_2002, не ну это-то я знаю. А если в это TD поместить <table><tr><td></td></tr></table>, то получить позицию этой таблицы можно только относительно ячейки, в которой она располагается, а не относительно всей страницы. Абсолютную позицию можно будет получить только так -- TABLE.offsetTop+TD30.offsetTop. И, наверное, это правильно. Просто если вложенность большая, то утомляет бегать по этой иерархии...
Я это к чему спрашивал -- просто у меня были ошибки в вычислениях этой позиции, вот и подумал, что может можно как-то проще сделать. А сейчас нашёл где ошибка, так что сейчас всё О'k. :)
Salus populi suprema lex


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

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

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

    TopList