Einzelnen Beitrag anzeigen

wschrabi

Registriert seit: 16. Jan 2005
448 Beiträge
 
#5

AW: Handling von zufällig auftretenden POPUP Windows im TWEbBowser.

  Alt 24. Sep 2024, 21:01
Hallo Leute,
ich werde das Probieren und hoffe das funktioniert:

Um das "Webseite Verlassen"-Fenster abzufangen, das in der TWebView-Komponente von Winsoft.sk auftreten kann, müssen Sie verstehen, dass es sich um ein JavaScript-basiertes Ereignis handelt. Dieses Fenster wird normalerweise durch das `window.onbeforeunload`-Ereignis in JavaScript ausgelöst, welches eine Warnung anzeigt, wenn ein Benutzer versucht, die Seite zu verlassen[1][2].

### Abfangen des "Webseite Verlassen"-Fensters in TWebView

Da TWebView auf der Microsoft WebView2 API basiert[7], können Sie JavaScript-Ereignisse abfangen und darauf reagieren. Hier sind einige Schritte, wie Sie dieses Ereignis in Ihrer Anwendung behandeln können:

1. **JavaScript-Ereignis erkennen**: Implementieren Sie JavaScript in Ihrer Webseite, um das `onbeforeunload`-Ereignis zu überwachen. Dies könnte so aussehen:


Delphi-Quellcode:
   window.onbeforeunload = function() {
      return 'Möchten Sie die Seite wirklich verlassen?'
  }
;

2. **Ereignishandler in Delphi**: Verwenden Sie die WebView2-Ereignisse in Delphi, um auf dieses JavaScript-Ereignis zu reagieren. Sie können das `OnWebMessageReceived`-Ereignis verwenden, um Nachrichten von der Webseite zu empfangen und entsprechende Aktionen auszuführen.

3. **Benutzerdefinierte Aktionen ausführen**: Sobald das Ereignis erkannt wird, können Sie eine Funktion oder eine Benachrichtigung in Ihrer Anwendung auslösen. Dies könnte durch die Implementierung eines Event-Handlers in Delphi geschehen:

Delphi-Quellcode:
   procedure TFormMain.WebViewWebMessageReceived(Sender: TObject; Args: IWebView2WebMessageReceivedEventArgs);
   begin
       // Ihre benutzerdefinierte Funktion hier
       ShowMessage('Der Benutzer versucht, die Webseite zu verlassen.');
   end;
### Weitere Überlegungen

- **Pop-up-Verwaltung**: Wenn Ihre Anwendung auch andere Pop-ups verwalten muss, können Sie die entsprechenden Ereignisse wie `OnNewWindowRequested` verwenden, um diese zu kontrollieren[6].

- **Integrationstests**: Testen Sie Ihre Anwendung gründlich, um sicherzustellen, dass alle JavaScript-Ereignisse korrekt abgefangen und behandelt werden.

Diese Methode ermöglicht es Ihnen, auf das Verlassen der Seite zu reagieren und benutzerdefinierte Aktionen auszuführen, wenn das entsprechende JavaScript-Ereignis ausgelöst wird.

Citations:
[1] https://www.askingbox.de/info/javasc...seite-anzeigen
[2] https://blog.bartlweb.net/2010/03/js...eite-anzeigen/
[3] https://learn.microsoft.com/de-de/mi...owser-features
[4] https://www.gutefrage.net/frage/gibt...e-zu-verlassen
[5] https://appmaster.io/de/blog/was-ist-eine-webview-app
[6] https://www.delphipraxis.net/215677-...webbowser.html
[7] https://www.winsoft.sk/webview.htm
  Mit Zitat antworten Zitat