AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi [TWebbrowser] Document und lokale Dateien
Thema durchsuchen
Ansicht
Themen-Optionen

[TWebbrowser] Document und lokale Dateien

Ein Thema von Igotcha · begonnen am 30. Aug 2008 · letzter Beitrag vom 30. Aug 2008
Antwort Antwort
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#1

[TWebbrowser] Document und lokale Dateien

  Alt 30. Aug 2008, 00:30
Hallo zusammen,

ich benutze folgende Vorgehensweise, um HTML-Inhalte in einem TWebbrowser darzustellen. Das "Document" wird aus Inhalten einer Datenbank zusammengesetzt.

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var
  myDocument:OleVariant;
begin
  if WEB1.Document = nil then WEB1.Navigate('about:blank');

  myDocument:=WEB1.Document;
  myDocument.Clear;
  myDocument.Write('

Hier soll jetzt zur [url="lokal.html"]lokalen Datei[/url] navigiert werden.</p>
');
  myDocument.Close;
end;
Neben diesen DB-basierten Inhalten gibt es auch einige lokale HTML-, sowie andere verlinkte, lokale Dateien.

Ich schaffe es jetzt aber nicht, mir genau diese lokalen Dateien anzeigen zu lassen. Die Seite wird nicht geöffnet, stattdessen erscheint eine leere Seite mit dem Text "lokal.html". Die Datei liegt im selben Verzeichnis wie die Anwendung. Setzte ich den Link z.B. auf "http://google.de" funktioniert der Link.

Gruß Igotcha
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: [TWebbrowser] Document und lokale Dateien

  Alt 30. Aug 2008, 10:35
Hallo Igotcha,

Hast du es schon mal mit absoluten Pfadangaben probiert?
Da das geladene Dokument lokal nicht existiert wird durch die relative Pfadangabe die lokale Datei nicht gefunden.

Alternative, falls das auch nicht funktionieren sollte:

Ein eigenes Protokoll definieren:

Delphi-Quellcode:
const
  MYPROTOCOL = 'mylocalfile://';
Im OnBeforeNavigate2 Ereignis den Link in den lokalen Link umwandeln.

Delphi-Quellcode:
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  if Pos(MYPROTOCOL, URL) <> 0 then
  begin
    Cancel := True; // Navigation Abbrechen
    URL := StringReplace(URL, MYPROTOCOL ,'file://',[rfIgnoreCase]);
    TWebBrowser(Sender).Navigate(URL);
  end;
end;
Zuvor wird der Link ins Dokument geladen:

Delphi-Quellcode:
//...
strLocalFile := MYPROTOCOL + '/C:/test.htm';
myDocument.Write('

Hier soll jetzt zur [url="
'+ strLocalFile +'"]lokalen Datei[/url] navigiert werden.</p>');
//...
Thomas
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: [TWebbrowser] Document und lokale Dateien

  Alt 30. Aug 2008, 10:57
Hallo Igotcha,

ich hatte ein ähnliches Problem und konnte es mit
angabe einer Pfadangabe oben im header lösen:

<base href="{ Hier der Pfad deiner Anwendung }" />

Danach führte er auch die relativen Links richtig aus.

Gruß
Jürgen
Jürgen Höfs
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#4

Re: [TWebbrowser] Document und lokale Dateien

  Alt 30. Aug 2008, 20:59
Danke euch beiden.

Das mit der base-Angabe im Header funktioniert bei mir nicht, und das Abfangen im "OnNavigate2" wollte ich eigentlich genau vermeiden - geht aber anscheinend nicht anders

Igotcha
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: [TWebbrowser] Document und lokale Dateien

  Alt 30. Aug 2008, 22:06
Hier gab es das Thema auch schon...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz