AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Twebbrower Link in Standard Browser anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Twebbrower Link in Standard Browser anzeigen

Ein Thema von ashkan19 · begonnen am 23. Mär 2021 · letzter Beitrag vom 25. Mär 2021
Antwort Antwort
Seite 2 von 3     12 3      
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Twebbrower Link in Standard Browser anzeigen

  Alt 23. Mär 2021, 11:47
TWebBrowser.OnNewWindow3 geht auch gut, wenn du nur Links, welche ein neues Browserfenster öffnen sollen in einem beliebigen anderen Browser öffnen lassen willst.
Michael Gasser
  Mit Zitat antworten Zitat
ashkan19

Registriert seit: 13. Okt 2020
36 Beiträge
 
#12

AW: Twebbrower Link in Standard Browser anzeigen

  Alt 23. Mär 2021, 20:27
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
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#13

AW: Twebbrower Link in Standard Browser anzeigen

  Alt 23. Mär 2021, 22:20
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.
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Twebbrower Link in Standard Browser anzeigen

  Alt 23. Mär 2021, 23:18
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.
Michael Gasser

Geändert von Michael II (24. Mär 2021 um 06:33 Uhr)
  Mit Zitat antworten Zitat
ashkan19

Registriert seit: 13. Okt 2020
36 Beiträge
 
#15

AW: Twebbrower Link in Standard Browser anzeigen

  Alt 24. Mär 2021, 08:17
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.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#16

AW: Twebbrower Link in Standard Browser anzeigen

  Alt 24. Mär 2021, 16:45
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 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.
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Twebbrower Link in Standard Browser anzeigen

  Alt 24. Mär 2021, 22:08
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 Gasser
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Twebbrower Link in Standard Browser anzeigen

  Alt 24. Mär 2021, 22:44
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.
Michael Gasser

Geändert von Michael II (24. Mär 2021 um 22:49 Uhr)
  Mit Zitat antworten Zitat
ashkan19

Registriert seit: 13. Okt 2020
36 Beiträge
 
#19

AW: Twebbrower Link in Standard Browser anzeigen

  Alt 25. Mär 2021, 08:33
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
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#20

AW: Twebbrower Link in Standard Browser anzeigen

  Alt 25. Mär 2021, 08:45
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)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 15:00 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