Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Server soll "anzeigen in neuem Tab" erzwingen (https://www.delphipraxis.net/211293-server-soll-anzeigen-neuem-tab-erzwingen.html)

charly52 26. Aug 2022 13:29

Server soll "anzeigen in neuem Tab" erzwingen
 
Hi all,

kann ich in einer Serveranwendung irgendwo im TWebResponse was einstellen, daß die zurückgegebene Textdatei in einem neuen Tab im Browser angezeigt wird?

Danke Charly

himitsu 26. Aug 2022 13:44

AW: Server soll "anzeigen in neuem Tab" erzwingen
 
Nein.

Man kann im Response-Header angeben, ob gedownloaded/gespeichert werden soll (wenn nicht, dann wird angezeigt, falls der Browser es anzeigen kann).
https://developer.mozilla.org/en-US/...nt-Disposition
https://stackoverflow.com/questions/...oad-for-mobile

Ansonsten sagt der Abrufer (z.B. der Link in der Webseite im Browser/Client) wo angezeigt werden soll.
https://www.w3schools.com/tags/att_a_target.asp

charly52 29. Aug 2022 08:54

AW: Server soll "anzeigen in neuem Tab" erzwingen
 
Ok Danke,

das muss ich also auf der Client-Seite erledigen.

Charly

dummzeuch 29. Aug 2022 15:16

AW: Server soll "anzeigen in neuem Tab" erzwingen
 
Ist das nicht das HTML <a> Target Attribut?

https://www.w3schools.com/tags/att_a_target.asp

mjustin 29. Aug 2022 16:03

AW: Server soll "anzeigen in neuem Tab" erzwingen
 
Zitat:

Zitat von dummzeuch (Beitrag 1510951)
Ist das nicht das HTML <a> Target Attribut?

https://www.w3schools.com/tags/att_a_target.asp

Das Tag wirkt nur wenn es in einer HTML Seite steht. Wenn man aber direkt die Ziel-URL in die Adresszeile eingibt, kann der Server nicht erzwingen dass im Client ein neues Tab geöffnet wird. Die Response kann nur Response Header setzen, so wie im zweiten Beitrag beschrieben, und keiner bewirkt die Anzeige in einem neuen Tab.

Rolf Frei 29. Aug 2022 16:11

AW: Server soll "anzeigen in neuem Tab" erzwingen
 
Das ist aber doch so auch garnicht gwünscht. Wo ist der Sinn dabei, wenn ich einen Link manuell in der Adresszeile eingebe, dass dann ein neues Fenster geöffnet wird? In diesem Fall ist das doch absolut OK oder sogar gewünscht, dass das im aktuellen Tab/Fenster kommt.

An den OP: Dein Link, der deine Sever-URL aufruft, musst du mit dem Target Attribut ergänzen und da den Wert "_blank" angeben:
Code:
<a href="deine URL" target="_blank">
Das ruft deinen Server auf und die Antwort wird dann in einem neuen Fenster/Tab angezeigt. Ich vermute das ist genau das was du willst.

mjustin 29. Aug 2022 16:25

AW: Server soll "anzeigen in neuem Tab" erzwingen
 
Zitat:

Zitat von Rolf Frei (Beitrag 1510961)
Das ist aber doch so auch garnicht gwünscht. Wo ist der Sinn dabei, wenn ich einen Link manuell in der Adresszeile eingebe, dass dann ein neues Fenster geöffnet wird?

Die Frage im ersten Artikel war, ob man in TWebResponse was einstellen kann. Wir wissen nur, dass das Dokument, das die TWebResponse zurückgibt, ein Textdokument sein soll.

Über den Kontext wissen wir wenig, nur dass ein HTTP Request von einem TWebResponse verarbeitet werden soll. Wir wissen nicht ob da eine HTML Seite im Spiel ist, oder ob z.B. ein URL in einer E-Mail angeklickt wird. Der URL könnte auch eine Adresse sein, die im Rahmen eines JavaScripts ermittelt wird, auch dann macht der Anwender keine Eingabe in der Adresszeile.
Wir wissen auch nicht ob das System, das den Request sendet / den URL anspricht, auf dem gleichen Server läuft oder unter fremder Kontrolle ist.

Rolf Frei 29. Aug 2022 18:00

AW: Server soll "anzeigen in neuem Tab" erzwingen
 
Ja da hast du schon recht, aber eigentlich macht das Ganze nur Sinn, wenn der Link aus einer bestehenden Website aufgerufen wird. Von daher ist es für mich realtiv eindeutig was er gemeint hat und da ist die Lösung eben das target="_blank" beim Link.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:06 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