Гобелен - кликните для возврата на главную
Не прошло и месяца а Фурмановская ЦРБ в очередной раз попала в историю. На этот раз сотрудница клеветала на пациентов, а именно огласку получил случай когда сотрудница назвала пациента алкашём.
Так почему бы не начать использовать обход блокировки YouTube при том что техническая возможность используя расширение nikolaevevge для браузера Mozilla Firefox уже появилась, а объем полезной(и не очень) информации на видеохостинге YouTube, по мнению некоторых диванных экспертов, меньше не стал.
Ровно 3 года назад произошло событие, которое подарило жителям планеты Змеля новый чистый праздник 6 апреля - в этот замечательный день земля забрала гнить негодяя и СПАМера Владимира Вольфовича Жириновского.
Как бы не обстояли дела в области культуры и IT-технологий, Самосвал писал статьи на связанные темы и планирует ещё написать.
На очередном конкурсе танцев, школьница отлично выступила.
Вот та самая информация: программа для продвижения канала YouTube, эта информация выложена уже несколько лет, при этом просмотров не много, а метод который описан в данном видео действительно помогает продвигать видео в YouTube.
Начал разбираться с информацией которая находится в HTTPS клиентском запросе рукопожатия.
Обратите внимание! Объект изображённый на гобилене может отличаться от общепринятого вида описанного объекта. Тут дело в том что художник видит именно так!
В контексте TWebBrowser в C++ Builder 6 и других COM-объектах, связанных с Internet Explorer, IHTMLElement и IHTMLDocument2 — это интерфейсы COM, предоставляющие доступ к HTML-документу и его элементам. Они являются частью MSHTML (движка IE) и позволяют управлять содержимым страницы программно. Ниже приведены ключевые особенности.
Это основной интерфейс для работы с HTML-документом, загруженным в TWebBrowser. Он предоставляет методы для:
Метод | Описание |
get_body | Получает указатель на документа (IHTMLElement*) |
getElementById | Находит элемент по его id |
write | Записывает HTML-код в документ (перезаписывает содержимое) |
createElement | Создает новый HTML-элемент |
get_URL | Возвращает URL текущего документа |
// Получаем интерфейс документа
IHTMLDocument2* doc = (IHTMLDocument2*)WebBrowser1->Document;
if (doc != NULL) {
// Записываем новый HTML
doc->write(L"<h1>Hello from C++!</h1>");
doc->close();
doc->Release(); // Важно освободить COM-объект!
}
Этот интерфейс представляет любой HTML-элемент на странице (например, <div>, <p>, <input>). С его помощью можно:
Метод | Описание |
get_innerHTML / put_innerHTML | Получает или устанавливает HTML-содержимое элемента |
get_innerText / put_innerText | Работает с текстовым содержимым |
insertAdjacentHTML | Вставляет HTML в указанную позицию (например, beforeEnd) |
setAttribute | Устанавливает атрибут элемента (например, class или style) |
get_parentElement | Получает родительский элемент |
Пример использования:
// Получаем элемент по id
IHTMLElement* element = NULL;
doc->getElementById(L"myDiv", &element);
if (element != NULL) {
// Меняем текст
element->put_innerText(L"Новый текст");
// Добавляем HTML
element->insertAdjacentHTML(L"beforeEnd", L"<span>Дополнительно</span>");
element->Release(); // Освобождаем COM-объект
}
IHTMLDocument2 — это «входная точка» для работы с документом. Через него вы получаете доступ к элементам (IHTMLElement).
IHTMLElement — конкретный элемент на странице, который можно модифицировать.
// 1. Получаем документ
IHTMLDocument2* doc = (IHTMLDocument2*)WebBrowser1->Document;
if (doc != NULL) {
// 2. Получаем элемент body
IHTMLElement* body = NULL;
doc->get_body(&body);
if (body != NULL) {
// 3. Добавляем новый div в body
body->insertAdjacentHTML(L"beforeEnd",
L"<div id='msg'>Сообщение из C++</div>");
body->Release();
}
doc->Release();
}
COM-объекты и память:
Проверяйте указатели (doc != NULL, element != NULL) перед использованием.
Некоторые современные методы DOM могут отсутствовать. Используйте базовые функции, как в примерах выше.
Если что-то не работает, проверьте:
void AddChatMessage(TWebBrowser* browser, const WideString& user, const WideString& text) {
IHTMLDocument2* doc = (IHTMLDocument2*)browser->Document;
if (doc != NULL) {
IHTMLElement* chatContainer = NULL;
doc->getElementById(L"chat-container", &chatContainer);
if (chatContainer != NULL) {
// Создаем HTML для нового сообщения
WideString html =
L"<div class='message'><span class='user'>" + user +
L":</span> " + text + L"</div>";
// Добавляем в конец контейнера
chatContainer->insertAdjacentHTML(L"beforeEnd", html.c_bstr());
chatContainer->Release();
}
doc->Release();
}
}
IHTMLDocument2 — интерфейс для работы с документом (аналог document в JavaScript).
IHTMLElement — интерфейс для управления конкретными элементами (аналог element в JS).
Используйте их для динамического обновления содержимого TWebBrowser без временных файлов.
Эти интерфейсы — основа для взаимодействия C++-кода с HTML в компоненте TWebBrowser. Они дают полный контроль над страницей, но требуют аккуратной работы с COM-памятью.
Вы так же можете прочитать следующие статьи: