Autor |
Beitrag |
sky21
Beiträge: 141
W7
D2010, XE2
|
Verfasst: Mi 23.03.11 16:42
Hi all
Gibt es eine Möglichkeit dem TWebbrwoser mitzuteilen, dass er auch Dateien ohne Dateiendung laden soll?
Beispiel:
www.webserver.com/eine_datei
Wobei der Inhalt von "eine_datei" HTML Code ist.
Der Aufruf von Navigate2() kommt nie zurück; bleibt hängen.
Ferner muss meine TWebbrowser Instanz auch Dateien mit exotischen Dateiendungen laden. z.B. "Mein_Dokument.Foo". Dies konnte ich dem IE allerdings mittels File-Type-Registrierung beibringen
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 23.03.11 17:12
|
|
sky21
Beiträge: 141
W7
D2010, XE2
|
Verfasst: Mi 23.03.11 17:50
Zuletzt bearbeitet von sky21 am Mi 23.03.11 18:18, insgesamt 1-mal bearbeitet
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 23.03.11 18:00
sky21 hat folgendes geschrieben : | wenn man "http://www.webserver.com/eine_datei" aufruft erscheint eine page-not-found webseite (404?) Ich habe die URL jedoch zur zur Verdeutlichung meines Problems verwendet. |
Das zeigt doch aber, dass genau dein Problem genau dort nicht auftritt. Das ist schließlich auch eine normale HTML-Seite...
Und es wäre mir auch neu, dass das nicht geht.
|
|
sky21
Beiträge: 141
W7
D2010, XE2
|
Verfasst: Mi 23.03.11 18:49
jaenicke hat folgendes geschrieben : | sky21 hat folgendes geschrieben : | wenn man "http://www.webserver.com/eine_datei" aufruft erscheint eine page-not-found webseite (404?) Ich habe die URL jedoch zur zur Verdeutlichung meines Problems verwendet. | Das zeigt doch aber, dass genau dein Problem genau dort nicht auftritt. Das ist schließlich auch eine normale HTML-Seite...
Und es wäre mir auch neu, dass das nicht geht. |
Das stimmt so nicht ganz: Bei Navigate2() auf "http://www.webserver.com/eine_datei" antwortet der Webserver mit "HTTP 404 - Page not found" und liefert mir anschliessend eine tolle Fehlerseite. Bei TWebbrowser wird OnNavigateError() aufgerufen. Soweit so gut; offenbar existiert die seite nicht.
Jetzt, navigiere ich auf "http://<mein_server_der_nur_intern_erreichbar_ist>/<eine_datei_die_existiert_mit_HTML_Inhalt>":
Mein Problem ist, dass der webserver mit "HTTP 200 - OK" antwortet, jedoch dann kein OnDocumentComplete() aufruft.
Sorry, das mit "http://www.webserver.com/eine_datei" war ein falsches Beispiel...
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 23.03.11 19:19
Dann liefert der Server offenbar keinen korrekten Header zu dieser Datei aus. Also ich meine speziell um was für Daten es sich handelt.
Denn wenn der Server nicht im Header angibt, dass es eine HTML-Seite ist, wissen das der Browser und auch der TWebBrowser auch nicht...
|
|
sky21
Beiträge: 141
W7
D2010, XE2
|
Verfasst: Mo 28.03.11 14:31
jaenicke hat folgendes geschrieben : | Dann liefert der Server offenbar keinen korrekten Header zu dieser Datei aus. Also ich meine speziell um was für Daten es sich handelt.
Denn wenn der Server nicht im Header angibt, dass es eine HTML-Seite ist, wissen das der Browser und auch der TWebBrowser auch nicht... |
Es ist schon zum Verzweifeln: Bennene ich die Dateie auf .html um, dann funktioniert alles wunderbar. Ohne bzw. mit unbekannter Dateiendung bleibt der Browser stehen. Im IP trace sehe ich lediglich, dass der Server mit HTTP/1.1 200 OK (text/plain) und mit der .html Version HTTP/1.1 200 OK (text/html). Aha, offenbar hat mein IE Browser grosse Mühe mit text/plain? Denn: Mit dem Chrome Browser zeigt es mir den "plain text" tatsächlich an. Der Inhalt wird offenbar mit den zweiten Browser auch gar nicht erst versucht zu interpretieren. Soweit so gut. Aber: Lade ich einfach eine Datei "sample" herutner mit reinem text (Antwort HTTP/1.1 200 OK (text/plain), so zeigt mir der IE (bzw. TWebBrowser) auch tatsächlich an. Soviel zur Theorie...
Es geht weiter: Schaue ich den Originalcode (naja, fast orig...)an, so sehe ich den Verweis auf XML/XSD. Entferne ich die oberen beiden Zeilen, dann kann auch meine IE damit umgehen.
// source
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es"> <head> <title>mobiletv</title> <meta http-equiv="REFRESH" content="0;URL=<HIER_EINE_URL>"/> </head>
<body onload="window.location=HIER_EINE_URL';" > <a href="HIER_EINE_URL">Mein Super Link</a> </body>
</html> |
Nun ja, selbst wenn die Seite dann endlich mal geladen werden würde habe ich dann ein Nachfolgeproblem: Ich will einfach an den mit <a> "getängten" Hyperlink geladen. Muss also gleichzeitig noch das meta-Tag "refresh" und das "onload" event unterdrücken... Tja, die Problem gehen scheinbar wirklich nicht aus.
|
|
|