InProgramThe twebbrowser control or the Indy control is used to connect to a webpage using Ajax technology. The source code of the webpage does not contain any updated content from the client. In the IE browser, you cannot view the source file and the Ajax update content. The updated Ajax content can be seen through the plug-in. The question is how to obtain the complete webpage content in the program?
If Ajax is updated, the webbrowser documentcomplete event will not be triggered.
In fact, the complete web page content is not impossible to obtain. You can use a simple method:
Function gethtml (const webbrowser: twebbrowser): string;
VaR
DOC: ihtmldocument2;
Begin
DOC: = webbrowser. Document as ihtmldocument2;
If assigned (DOC) and assigned (Doc. Body) then
Result: = Doc. Body. outerhtml; // you can also use innerhtml to obtain the HTML text.
End;
In this way, the HTML content contains the content updated by Ajax.
Now the key is that there is no good way to determine whether Ajax has been updated. Because asynchronous updates are used, it is difficult to determine. I searched the internet, and there seems to be a complicated solution abroad, and I have not studied whether it is feasible or not.
I have worked on web content collection software. I don't know if there is any good way to deal with it. Thank you for your advice.