Wie zu zwingen, eine Seite in TWebBrowser Steuerung zu laden, wenn diese nicht sichtbar ist
-
10-10-2019 - |
Frage
Ich brauche einige JavaScript-Funktionen von Delphi Code auszuführen, aber das funktioniert nicht, wenn die Seite nicht in der TWebBrowser Steuerung geladen wird. so dass das Problem ist, wenn Seite in einem tabshet befindet Weichen nicht aktiv ist die Seite nicht geladen wird, bis die tabsheet aktiv werden wird.
ist die Frage, wie zu zwingen, eine Seite in einer Twebbrowser
Steuerung laden, wenn diese nicht sichtbar ist.
Dieses Verhalten zu testen, nur ein Pagecontrol setzen, mit 2 tabsheets und ein TWebBrowser in dem zweiten tabsheet, jetzt im oncreate-Ereignisse des Formulars setzte diesen Code
WebBrowser1.Navigate('http://stackoverflow.com');
jetzt, wenn Sie die App die Seite lädt nur ausgeführt, wenn Sie macht die zweite tabsheet sichtbar.
Vielen Dank im Voraus.
Lösung
Anruf WebBrowser1.HandleNeeded;
, bevor Sie anrufen WebBrowser1.Navigate
Andere Tipps
Ich kann nicht das Verhalten reproduzieren Sie dokumentieren. Ich habe Ihre Anweisungen eine Seite Steuerung, zwei Registerkarten, Web-Browser auf dem zweiten (unsichtbar) Registerkarte gefolgt.
Um zu wissen, wenn die Seite geladen ist, habe ich einige Ereignisse des Web-Browser erfassen. Ich sehe, dass onBeforeNavigate
, onTitleChange
und OnNavigateComplete
all get gefeuert ohne zweite tabsheet sichtbar machen zu müssen.
Einstellen des JavaScript-Code in einer dieser Ereignisse ausführen kann Ihr Problem lösen.