Avatar billede bomann Nybegynder
12. oktober 2006 - 23:32 Der er 1 løsning

IHTMLDocument.readyState bliver aldrig complete

Jeg er ved at lave en HTML parser, og bruger HTMLDocument og IHTMLDocument2. I HTMLDocument bruger jeg CreateDocumentFromUrl.
Det giver mig en nem tilgang til links[] og images[]

Mit problem er at nogle sider, bl.a. http://www.dr.dk, ved CreateDocumentFromUrl aldrig skifter readyState til complete, men hænger bare et eller andet sted. Jeg har derfor følgende spørgsmål:

1. Hvad er det der gør, at man ikke kan loade en side som dr.dk ind i IHTMLDocument og hvorfor bliver den aldrig complete?

2. Kan det lade sig gøre at stoppe CreateDocumentFromUrl - det virker som om der er et eller anden der bliver ved med at køre eller hænge? Jeg har prøvet med

oIHTML.execCommand("stop", false, null);
oHTML.execCommand("stop", false, null);

uden held :(

Det optimale vil selvfølgelig være, at finde en løsning hvor alle sider kunne loades ind i document objectet.

using System.IO;
using System.Net;
using System.Threading;
using mshtml;

HTMLDocument oHTML = new HTMLDocument();
oHTML.write(null);  // These two lines are very important...
oHTML.close();      // ...or you will get an exception
IHTMLDocument2 oIHTML = oHTML.createDocumentFromUrl("http://www.dr.dk", "");
while (oHTML.readyState != "complete")
{
  Application.DoEvents();
}

while ((oIHTML.readyState != "complete"))
{
  Application.DoEvents();
}
Avatar billede bomann Nybegynder
24. oktober 2006 - 18:53 #1
Ingen svar :(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester