Как заставить загружать страницу в управлении Twebbrowser, когда это не видно
-
10-10-2019 - |
Вопрос
Мне нужно выполнить некоторые функции JavaScript из кода Delphi, но эти функции не выполняются, если страница не загружена в управлении Twebbrowser. Таким образом, проблема в том, что если страница находится в таблете, если не активна, страница не загружена до тех пор, пока таблица не станет активной.
Вопрос в том, как заставить загрузить страницу в Twebbrowser
контроль, когда это не видно.
Чтобы проверить это поведение, просто поместите ячелон с 2 таб -листами и Twebbrowser во втором таблице, теперь в событии Create в форме. Поместите этот код
WebBrowser1.Navigate('http://stackoverflow.com');
Теперь, когда вы запускаете приложение, страница загружается только при устранении второго таблица.
заранее спасибо.
Решение
Вызов WebBrowser1.HandleNeeded;
Прежде чем позвонить WebBrowser1.Navigate
Другие советы
Я не могу воспроизвести поведение, которое вы документируете. Я следовал вашим инструкциям на одну страницу управления, две вкладки, веб -брусзер на второй (невидимой) вкладке.
Чтобы узнать, загружается ли страница, я захватываю некоторые события веб -бруздера. я вижу это onBeforeNavigate
, onTitleChange
а также OnNavigateComplete
Все получают увольнение без необходимости сделать второй таблиц видимым.
Настройка кода JavaScript для выполнения в рамках одного из этих событий может решить вашу проблему.