Avatar billede angelenglen Nybegynder
15. juli 2011 - 15:12 Der er 2 kommentarer og
1 løsning

WebBrowser med genereret html, vis billeder fra lokalhost

Jeg har et form med en webbrowser i.

Denne webbrowser bruger jeg til at vise noget html-kode som jeg henter ud af en database.

Jeg viser indholdet i browseren via følgende kode:

If (frmMain.Browser.Document IsNot Nothing) Then
  Dim doc As HtmlDocument = frmMain.Browser.Document.OpenNew(True)
  doc.Write(strHTMLcontent)
End If

Det viser også fint selve html-teksten osv, men billeder er døde.
Et eksempel på opførslen - HTML-koden indeholder følgende image-tag:
<img src="/images/test.png">

Det vises i browseren som et dødt billede, og hvis jeg højreklikke på det, og kigger på billedets URL, så er den ændret til:
about:/images/test.png

Jeg gætter på at dette bl.a. er fordi et HtmlDocument altid navigerer til "about:blank" når det initialiseres, og derved sættes webbrowserens dokuments scheme til "about".



Jeg har en webserver kørende på localhost, så mit spørgsmål er hvordan jeg får relative billed-url'er til at referere til localhost.
Eksempelvis ovenstående burde have vist http://localhost/images/test.png - og denne fil eksisterer også på localhost.
Avatar billede claes57 Ekspert
15. juli 2011 - 15:31 #1
bare for at se, om du kan nulstille, prøv at rette fra
<img src="/images/test.png">
til
<img src="./images/test.png">
eller
<img src="../images/test.png">
(jeg kan ikke lige huske, om det er et eller to . der er aktuelt dir)
Avatar billede angelenglen Nybegynder
15. juli 2011 - 15:45 #2
Det prøver jeg lige mandag morgen.

Jeg håbede dog på en løsning der ikke krævede at jeg aktivt skulle søge-og-erstatte i html-kildekoden.

For reelt påvirker problemet jo alle relative ressourcer, lige fra billeder til javascript, css og baggrundsbilleder, og sikkert en masse jeg ikke kan komme i tanke om her.

Mit håb var på en eller anden måde at kunne fortælle browseren at / (document root) er /localhost/, og desuden få den til ikke at bruge about:-schemet men i stedet bruge http:-schemet.
Avatar billede angelenglen Nybegynder
19. juli 2011 - 15:41 #3
Jeg løste problemet ved at placere en fil ved navn "blank.htm" på min localhost-server som bare er en blank side.
Så navigerer jeg til http://localhost/blank.htm - og derefter ændrer jeg innerHTML på body af den indlæste side - derved får jeg vist mit indhold fra databasen, men bibeholder http-schemaet og "forbindelsen" til localhost-sitet.

Derved vises billeder osv. korrekt.
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