Question

i need to execute some javascript functions from delphi code, but this functions fails if the page is not loaded in the Twebbrowser control. so the problem is if page is located in a tabshet wich is not active the page is not loaded until the tabsheet is become active.

the question is How to force load a page in a Twebbrowser control when this is not visible.

to test this behaviour just put a pagecontrol, with 2 tabsheets , and a twebbrowser in the second tabsheet, now in the oncreate event of the form put this code

WebBrowser1.Navigate('http://stackoverflow.com');

now when you run the app the page only loads when you makes the second tabsheet visible.

thanks in advance.

Was it helpful?

Solution

Call WebBrowser1.HandleNeeded; before you call WebBrowser1.Navigate

OTHER TIPS

I cannot reproduce the behavior you document. I have followed your instructions one page control, two tabs, webbrowser on second (invisible) tab.

To know if the page is loading, I have capture some events of the webbrowser. I see that onBeforeNavigate, onTitleChange and OnNavigateComplete all get fired without having to make second tabsheet visible.

Setting your javascript code to execute under one of those events may solve your problem.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top