Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: FireMonkey
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
hippocamus
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 38
1

Изменить свойства элементов веб-страницы в TWebBrowser

22.03.2016, 19:43. Просмотров 635. Ответов 3
Метки нет (Все метки)

Подскажите пожалуйста, как можно получить и изменить свойство элемента в страничке, отображённой с помощью TWebBrowser? Конкретно интересует - получить высоту текстового блока (<div>) в каждом <td> и ширину <td> в процентах, провести перерасчёт и установить новую ширину для <td>. (Выравнять колонки по высоте в зависимости от содержимого, так как стандартный алгоритм браузера даёт совершенно невменяемые результаты - где больше текста - выделяет меньшую ширину колонки).
Что-то вроде
WebBrowser1.OleObject.Document.all.tags('TABLE').Item(0).Rows.Item(0).Cells.Item(i).width
как это можно было сделать в VCL TWebBrowser.
Можно, конечно, прибегнуть к методу EvaluateJavaScript - но хотелось бы сделать средствами Delphi, если возможно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2016, 19:43
Ответы с готовыми решениями:

Получение html кода страницы из TWebBrowser
Собственно вопрос, как можно получить html код с TWebBrowser, если можно с...

Сохранение веб страницы
вот процедура для сохранения procedure TForm1.SaveHTMLSourceToFile(const...

Ищу парсер веб страницы
Всем привет! Подскажите нормальный компонент парсера веб страниц (html)?...

Парсинг определенных символов с веб страницы
Всем привет. Есть веб страница, на ней есть строка вида login@domain.ru;pass...

Как загрузить в Memo код веб страницы??
Как загрузить в Memo код веб страницы?? Может для этого более хороши другие...

3
hippocamus
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 38
29.05.2017, 03:15  [ТС] 2
Так как с ответами ну совсем уж туго... Вопрос до сих пор не решён в общем случае - напишу - я для себя вопрос решил.
Неправильно, но радикально.
У меня всё делает встроенный JS:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script lang="javascript">
  function res_td() {
    var tr=document.getElementsByTagName("tr");
    for (j=tr.length-1; j>=0; j--) {
      c=tr[j].childNodes.length;
      if (c==1) {continue};
      sum=0;
      for (i=0; i<tr[j].childNodes.length; i++) {
        sum=sum+tr[j].childNodes[i].childNodes[0].offsetHeight*tr[j].childNodes[i].childNodes[0].offsetWidth;
      };
      for (i=0; i<tr[j].childNodes.length; i++) {
        var w=tr[j].childNodes[i].childNodes[0].offsetHeight*tr[j].childNodes[i].childNodes[0].offsetWidth/sum*100+"%";
        tr[j].childNodes[i].style.width=w;
      };
    };
    return false;
  };
</script>
Решается вопрос форматирования столбцов таблиц - если в одном столбце много текста и он получается "высок", а в другом три слова, и он "не глубок"...
Полезно для тех, кто использует табличное форматирование, и где длина строк может заведомо превышать предусмотренные по умолчанию значения.

Да, ну и - конечно же:
<body onload="res_td()">
0
krapotkin
3441 / 3044 / 1051
Регистрация: 14.04.2014
Сообщений: 14,762
Записей в блоге: 15
29.05.2017, 16:51 3
ну так полно ж инфы в интернете как работать с браузером и его объектами
http://parsing-and-i.blogspot.ru/search/label/TWebBrowser
кроме того неплохо бы повысить версию TWebBrowser
и вообще-то нужно просто нормально писать HTML+CSS+JS и не лазить из программы по объектам DOM
0
hippocamus
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 38
29.05.2017, 21:45  [ТС] 4
Всё это, конечно, хорошо - но речь идёт не о VCL.TWebBrowser, а о кроссплатформенном FM.TWebBrowser.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2017, 21:45

Изменить свойства элементов внутри div
Есть страница, на которой &lt;div id=&quot;view&quot;&gt;&lt;/div&gt;. В этот &lt;div&gt; динамически...

Почему при создании веб-страницы в FrontPage автоматически создается папка с изображениями, а при создании веб-страницы в DreamWeaver - нет?
Если я создаю веб-страницу в FrontPage и называю ее, например, page.html, то...

TWebBrowser: не открываются некоторые страницы
Подскажите в чем ошибка:на форме TWebBrowser и TMainMenu все.В интернете нужную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru