Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Twebbrower Link in Standard Browser anzeigen (https://www.delphipraxis.net/207425-twebbrower-link-standard-browser-anzeigen.html)

Michael II 23. Mär 2021 10:47

AW: Twebbrower Link in Standard Browser anzeigen
 
TWebBrowser.OnNewWindow3 geht auch gut, wenn du nur Links, welche ein neues Browserfenster öffnen sollen in einem beliebigen anderen Browser öffnen lassen willst.

ashkan19 23. Mär 2021 19:27

AW: Twebbrower Link in Standard Browser anzeigen
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1485830)
Mal bei den Ereignissen des TWebBrowsers geschaut?
Delphi-Quellcode:
procedure TForm1.WebBrowserBeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
Was mag URL enthalten und wofür mag Cancel da sein?

Das Problem ist, dass, wenn ich den Cancel auf true setze und den shellexecute ausführe, der Browser dann garnicht mehr den Inhalt der Webseite auf Two Browser anzeigt

Delphi.Narium 23. Mär 2021 21:20

AW: Twebbrower Link in Standard Browser anzeigen
 
Dann musst Du halt anhand der Url entscheiden, ob etwas im TWebBrowser oder im externen Browser angezeigt werden soll.

Oder Dir im Programm 'nen Schalter setzen, damit die Routine entscheiden kann, ob eine Seite aus Deinem Programm heraus im eigenen TWebBrowser angezeigt werden soll, oder ob ein Klick im TWebBrowser erfolgte und daher ein Link im externen Browser angezeigt werden soll.

Michael II 23. Mär 2021 22:18

AW: Twebbrower Link in Standard Browser anzeigen
 
Laut #1 zeigst du Links in einem TWebBrowser W an. Falls du die Linkseite selber erstellst:

Wenn du das Ereignis aus #11 verwendest, kannst du via HTML steuern ob ein vom User geklickter Link wieder in W oder in einem externen Browser angezeigt werden soll.

Enthält der Link target="_blank" => Ereignis aus #11 wird ausgelöst => Wunschbrowser starten
ohne target="_blank" wird der Link in W angezeigt.

ashkan19 24. Mär 2021 07:17

AW: Twebbrower Link in Standard Browser anzeigen
 
Zitat:

Zitat von Michael II (Beitrag 1485898)
Laut #1 zeigst du Links in einem TWebBrowser W an. Falls du die Linkseite selber erstellst:

Wenn du das Ereignis aus #11 verwendest, kannst du via HTML steuern ob ein vom User geklickter Link wieder in W oder in einem externen Browser angezeigt werden soll.

Enthält der Link target="_blank" => Ereignis aus #11 wird ausgelöst => Wunschbrowser starten
ohne target="_blank" wird der Link in W angezeigt.

Die HTML Seite erstelle ich zwar selbst aber die links darin sind variabel und konnten minute für minute sich verändern.

Delphi.Narium 24. Mär 2021 15:45

AW: Twebbrower Link in Standard Browser anzeigen
 
Zitat:

Zitat von Michael II (Beitrag 1485898)
Enthält der Link target="_blank" => Ereignis aus #11 wird ausgelöst => Wunschbrowser starten
ohne target="_blank" wird der Link in W angezeigt.

Das stimmt so nicht: _blank bedeutet, dass das Ziel des Links in einem neuen Browserfenster geöffnet wird.

Ein Link mit target="_blank" im FireFox geklickt, wird immer ein neues Fenster des FireFox öffnen, auch wenn IE, Edge, Chrome, Opera, ... als Standardbrowser definiert sein sollten. Analog gilt das auch für die anderen Browser.

TWebBrowser ist nun mal der IE und deshalb führt target="_blank" dazu, dass ein Link in einem neuen Fenster des IEs geöffnet wird.

Zitat:

Zitat von ashkan19
Die HTML Seite erstelle ich zwar selbst aber die links darin sind variabel und konnten minute für minute sich verändern.

Wie sehen die Links denn aus? Beispiele!

Wie rufst Du denn Deine selbserstellten HTML-Seiten im TWebBrowser auf? Quelltext und Beispiellink, Dateinamen, ...

Wie sehen Deine bisherigen Versuche für das Ereignis BeforeNavigate2 des TWebBrowser aus? Beispiel!

Wenn wir dazu mal etwas tiefergehende Informationen erhalten würden, wäre eventuell sogar eine konkrete Hilfestellung möglich. Momentan ist da eine Gleichung mit 'ner unbekannten Anzahl von Unbekannten. Das ist dann eher schwierig zu lösen.

Michael II 24. Mär 2021 21:08

AW: Twebbrower Link in Standard Browser anzeigen
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1485961)
Zitat:

Zitat von Michael II (Beitrag 1485898)
Enthält der Link target="_blank" => Ereignis aus #11 wird ausgelöst => Wunschbrowser starten
ohne target="_blank" wird der Link in W angezeigt.

Das stimmt so nicht: _blank bedeutet, dass das Ziel des Links in einem neuen Browserfenster geöffnet wird.

Ein Link mit target="_blank" im FireFox geklickt, wird immer ein neues Fenster des FireFox öffnen, auch wenn IE, Edge, Chrome, Opera, ... als Standardbrowser definiert sein sollten. Analog gilt das auch für die anderen Browser.

Aber sowas von stimmen tut es. Ich verwende dies seit vielen Jahren genau so in einer App, welche bis jetzt auf über 40'000 Windows Kisten installiert worden ist. Und ich habe noch nie eine gesehen, bei welcher das, was ich hier geschrieben habe nicht geht. Und ich habe viele Kisten gesehen. Und im Web findest du sicher ähnliche Infos.

Hast du das was du schreibst (wie ich) verifiziert? Oder schreibst du einfach nur so?

Michael II 24. Mär 2021 21:44

AW: Twebbrower Link in Standard Browser anzeigen
 
Noch einmal kurz:

Die Webseite L, welche du in deiner App mit TWebBrowser anzeigen lässt enthält Links.

Du möchtest nun, dass alle oder eventuell nur ein Teil dieser Links im Standardbrowser/Wunschbrowser S geöffnet werden.

Wenn du jene Links in L, welche du im Browser S öffnen lassen willst im HTML Code mit target="_blank" versiehst, dann löst TWebBrowser beim Klick auf einen dieser target="_blank" Links das Ereignis OnNewWindow3 aus. Was du tun musst ist nicht viel:

Delphi-Quellcode:
procedure TsjOnlineForm.WebBrowser1NewWindow3(ASender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool; dwFlags: Cardinal;
  const bstrUrlContext, bstrUrl: WideString);
begiB
    OeffneMitStandardBrowser( bstrUrl );
    cancel := true;
end;
(Nebenbei: Links auf deiner Seite L ohne target="_blank" werden in deinem TWebBrowser in der App geöffnet. Ich nutze dies zum Beispiel fürs Anzeigen weiterer Info-/Linkseiten direkt in der App.)

(Es ist dabei völlig egal was Firefox, Chrome, Edge,.... mit target="_blank" anstellen. Es geht hier ausschliesslich um deine Linkseite L, welche in deinem TWebBrowser angezeigt wird und nur darum, dass TWebBrowser bei Links mit target="_blank" OnNewWindow3 auslöst.)


Wenn du die HTML Seite L von Hand erstellst, dann wählst du in deinem HTML-Tool für jene Links, welche extern im Standardbrowser angezeigt werden sollen als Ziel "Neues Fenster". Wenn du die Linkseite via Software erstellst, musst du den HTML-Link-Code durch target="_blank" ergänzen.


Es führen natürlich auch andere Wege nach Rom.

ashkan19 25. Mär 2021 07:33

AW: Twebbrower Link in Standard Browser anzeigen
 
Zitat:

Zitat von Michael II (Beitrag 1485987)
Noch einmal kurz:

Die Webseite L, welche du in deiner App mit TWebBrowser anzeigen lässt enthält Links.

Du möchtest nun, dass alle oder eventuell nur ein Teil dieser Links im Standardbrowser/Wunschbrowser S geöffnet werden.

Wenn du jene Links in L, welche du im Browser S öffnen lassen willst im HTML Code mit target="_blank" versiehst, dann löst TWebBrowser beim Klick auf einen dieser target="_blank" Links das Ereignis OnNewWindow3 aus. Was du tun musst ist nicht viel:

Delphi-Quellcode:
procedure TsjOnlineForm.WebBrowser1NewWindow3(ASender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool; dwFlags: Cardinal;
  const bstrUrlContext, bstrUrl: WideString);
begiB
    OeffneMitStandardBrowser( bstrUrl );
    cancel := true;
end;

Danke Michael, funktioniert einwandfrei :thumb::thumb:

Der schöne Günther 25. Mär 2021 07:45

AW: Twebbrower Link in Standard Browser anzeigen
 
Wahnsinn, doch so einfach. Merkwürdig warum es Embarcadero das nicht hinbekommt, obwohl es seit mindestens 2015 immer wieder gemeldet wird.

https://quality.embarcadero.com/browse/RSP-12279 (2015)
(...)
https://quality.embarcadero.com/browse/RSP-32322 (2021)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz