generieren dynamisches html in .net: Ein zuverlässiger Ansatz mit Webbrowser und mshtml.htmldocument
Dynamische HTML -Generation ist eine häufige Anforderung in der Webentwicklung. .NET bietet dafür mehrere Tools, einschließlich der system.windows.forms.webbrowser
Klasse und der mShtml.htmldocument
com Interface (von der Microsoft HTML -Objektbibliothek).
Verwenden der Webbrowser -Klasse
Die webbrowser
Klasse erlaubt die Navigation typischerweise zu einer URL und dem Abrufen des gerenderten HTML. Es liefert jedoch nicht immer das vollständig gerenderte HTML, da der Rendering -Prozess möglicherweise nicht vollständig ist. Um dies zu beheben, überwachen Sie das documentCompleted
Ereignis; Rufen Sie die HTML erst nach dem Brennen dieses Ereignisses ab.
die mshtml.htmldocument interface
Die mshtml.htmldocument
Schnittstelle bietet direkte Manipulation von gerenderten HTML. Sie können die Methode schreiben
, um zu einer URL zu navigieren und durch die alle
Sammlung zu iterieren, um die HTML zu erhalten. Diese Methode spiegelt jedoch möglicherweise nicht immer die endgültige gerenderte HTML wider, die sich möglicherweise von den rohen HTML unterscheidet.
Eine robustere Lösung: beide Methoden kombinieren
Ein überlegener Ansatz kombiniert die Stärken beider Methoden. Verwenden Sie webbrowser
für die Navigation und mshtml.htmldocument
für html retrieval, um das vollständige Rendering vor dem Abrufen zu gewährleisten. Dies beinhaltet:
webbrowser
. documentCompleted
Ereignis. mshtml.ihtmldocument2
interface von webbrowser
. alle
sammel von mshtml.ihtmldocument2
, um das vollständig gerenderte Html abzurufen. Diese kombinierte Methode bietet eine zuverlässige Möglichkeit, HTML mit .NETs webbrowser
und mshtml.htmldocument
generiert zu werden. Für genaues Rendern sollten Sie das HTML5 -Rendering durch die Browser -Funktionskontrolle aktivieren.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3