Avatar billede tjacob Juniormester
13. februar 2002 - 13:39 Der er 5 kommentarer og
1 løsning

Webbrowser control

Efter at jeg har indlæst en HTML-side i min Webbrowser-control, ønsker jeg at gemme kildekoden i en variabel.

-Det skal ske automatisk hver gang en side hentes: evt. i Download_Complete eller Document_Complete events.

Hvordan "aflæser" jeg kildekoden?

MVH tjacob
Avatar billede tjacob Juniormester
13. februar 2002 - 13:48 #1
Jeg ER klar over at man kan hente den med diverse API-kald og Winsock-kontrollen. Jeg er IKKE interesseret i denne løsning.
Avatar billede tjacob Juniormester
13. februar 2002 - 16:45 #2
-Det behøver heller ikke være med webbrowser-kontrollen. Jeg skal blot bruge kildekoden fra et HTML-doc på nettet. Hvordan får jeg det hentet og gemt i en variabel?
Avatar billede thefish Nybegynder
14. februar 2002 - 20:19 #3
Prøv følgende:

Private Sub Command1_Click()
    Dim fso, txtfile

objWeb.Navigate "http://localhost/project1/test.asp"
Do While objWeb.ReadyState <> READYSTATE_COMPLETE
    DoEvents
    x = x + 1
    Text1.Text = x
Loop
a = objWeb.Document.documentelement.outerhtml
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set txtfile = fso.CreateTextFile("e:\inetpub\wwwroot\project1\test.htm", True)
    txtfile.Write (a) ' Write a line.
    txtfile.Close
End Sub
Avatar billede tjacob Juniormester
15. februar 2002 - 11:54 #4
Tak for svaret thefish. Kunne du lige uddybe, hvad du gør i do-loopet?
Hvad er x?

MHT den nederste del, så har jeg prøvet med både outerhtml og innerhtml. Det er sådan set udmærket, men giver ikke HELE kildekoden. Hvis der f.eks. er scripts i koden kommer de IKKE med.

/tjacob
Avatar billede thefish Nybegynder
15. februar 2002 - 13:43 #5
Sorry

Det gik lidt hurtigt med at paste noget kode ind.
Årsagen til mit loop er at jeg afventer at browseren er færdig med at hente siden. Jeg har dårlige erfaringer med at bruge events med browseren

Det du ikke kan se er at jeg opdaterer en testform med x så jeg kan se hvor lang tid det tager at hente siden

Den følgende kode skulle meget gerne give dig alt det du skal bruge i en variabel:

Private Sub Command1_Click()
Dim objWeb As InternetExplorer

    Set objWeb = New InternetExplorer

objWeb.Navigate "http://www.computerworld.dk"
Do While objWeb.ReadyState <> READYSTATE_COMPLETE
    DoEvents
Loop
a = objWeb.Document.documentelement.outerhtml
End Sub
Avatar billede tjacob Juniormester
15. februar 2002 - 14:31 #6
-Det kører nu. Tak for hjælpen.
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
Kurser inden for grundlæggende programmering

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