Avatar billede peterd Nybegynder
19. juli 2003 - 12:24 Der er 10 kommentarer og
1 løsning

hvordan vise html-kode fra url

Jeg bruger en idhttp-komponent til at gemme noget html fra en url-adresse:

memo1.Text :=idhttp1.Get(urlstr);

Det virker oftest fint nok, men jeg
har et problem når jeg går ind på f.eks. www.hydrotexaco.dk. Se koden nederst.
Her får jeg kun en meget lille del af den kode, der bruges til at vise siden. Jeg tror det har noget med Javascript at gøre, og det ved jeg intet om!
Hvis jeg åbner siden i Internet Explorer og bruger Save As.. får jeg nøjagtig den html-fil jeg skal bruge. Den ligger i et underkatalog og hedder 'doc.html'
Spørgsmålet er altså, hvordan jeg får fat i denne doc.html, og jeg har prøvet med forskellige ting såsom
http://www.hydrotexaco.dk/servlet/doc.html
men det virker ikke.
Det kan være jeg skal bruge noget andet end en idhttp-komponent.


------------------------
<html>
<title>Hydro Texaco</title>
<head>

</head>
<body>
  <script>
    if((top.location.href!="http://draupner/") && (top.location.href!="http://vidar/")) {
        top.location.href = "http://www.hydrotexaco.dk/servlet/doc";
    }
        else {
        top.location.href ="/servlet/doc";
    }

  </script>
</body>
</html>
Avatar billede doc404 Novice
19. juli 2003 - 14:28 #1
Dit problem ligger i at din http komponent henter den rå html kode. Og der er som regel langt fra den rå html kode til det, der rent faktisk vises på skærmen pga. javscript, redirections, frames etc.

Brug en TWebBrowser komponent istedet og få den til at hente den side du ønsker at se. Derefter kan du hive html koden ud af den.
Avatar billede cms Nybegynder
19. juli 2003 - 14:38 #2
Du skal bruge følgende url - tror jeg:
http://www.hydrotexaco.dk/servlet/doc?iframe=no
Avatar billede peterd Nybegynder
19. juli 2003 - 14:49 #3
javel ja.
Men hvordan får jeg noget html ud af en tWebbrowser?
Jeg kan godt finde ud af at hente en side og vise den med en tWebbroser.
Avatar billede peterd Nybegynder
19. juli 2003 - 14:51 #4
Til cms:
Det virkede desværre ikke med din url. Jeg tror jeg har prøvet den engang tidligere.
Avatar billede doc404 Novice
19. juli 2003 - 14:58 #5
Du er lidt hurtigt til at afvise svar hva'ba?

Doc : variant;
...
Doc := meHtml.Document;
ShowMessage(Doc.body.InnerHTML);
Avatar billede doc404 Novice
19. juli 2003 - 14:58 #6
btw mtHtml er din TWebBrowser...
Avatar billede cms Nybegynder
19. juli 2003 - 15:15 #7
PeterD: Det er jeg ked af. I så fald vil jeg anbefale samme metode som doc404 angiver - den er også langt mere fleksibel (!)
Koden han skriver skal stå i WebBrowser1.OnDocLoaded (mener jeg den hedder).
Avatar billede peterd Nybegynder
19. juli 2003 - 15:50 #8
Hej
Mange tak til jer begge to. Nu virker det bare!
Nu kan jeg lave mit program der overvåger fyringsolieprisen.

Jeg skal bruge cms' url og doc404's metode:

doc:variant;
...
WebBrowser1.Navigate ('http://www.hydrotexaco.dk/servlet/doc?iframe=no',EmptyParam, EmptyParam,
  EmptyParam, EmptyParam);


{ WebBrowser1DownloadComplete: }
  doc:=webbrowser1.Document;
  memo1.text:=Doc.body.InnerHTML;
----------
Til cms: hvis du svarer kan du også få nogle point
Avatar billede stone Forsker
27. juli 2003 - 10:46 #9
hvorfor svarer du på dit eget spørgsmål?
Avatar billede peterd Nybegynder
29. juli 2003 - 22:10 #10
Jeg skal jo lige lære Eksperten at kende. Man skal tilsyneladende kun klikke på "kommentar", når man er spørger.
Avatar billede curlingcity Nybegynder
24. september 2003 - 17:06 #11
Hvis jeg prøver den kode du har angivet peterd får jeg en debuger execption notification .. og debugeren stopper ved -> memo1.txt:=Doc.body.InnerHTML .. underligt
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