AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Handling von zufällig auftretenden POPUP Windows im TWEbBowser.

Handling von zufällig auftretenden POPUP Windows im TWEbBowser.

Ein Thema von wschrabi · begonnen am 20. Aug 2024 · letzter Beitrag vom 24. Sep 2024
Antwort Antwort
wschrabi

Registriert seit: 16. Jan 2005
456 Beiträge
 
#1

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

  Alt 24. Sep 2024, 20:05
Auch eine Idee, wäre mit Injection von Javascript, die Routine zu überschreiben. Was meint Ihr dazu?

Um das "Webseite Verlassen"-Fenster in der TWebView-Komponente zu verhindern, müssen Sie das JavaScript-Ereignis `window.onbeforeunload` abfangen und entsprechend manipulieren. Dieses Ereignis wird ausgelöst, wenn ein Benutzer versucht, die Seite zu verlassen, und zeigt typischerweise eine Warnmeldung an, um den Benutzer zu fragen, ob er die Seite wirklich verlassen möchte[3][7].

### Möglichkeiten zur Verhinderung des "Webseite Verlassen"-Fensters

1. **JavaScript-Manipulation**:
- Sie können das `window.onbeforeunload`-Ereignis in Ihrem JavaScript-Code entfernen oder verhindern, dass es eine Meldung zurückgibt. Dies könnte so aussehen:


Code:
 window.onbeforeunload = null;

- Alternativ können Sie sicherstellen, dass die Funktion keine Rückgabewerte hat, um das Dialogfenster zu unterdrücken:


Code:
  window.onbeforeunload = function() {};

2. **WebView-Konfiguration**:
- Prüfen Sie, ob Ihre TWebView-Komponente die Möglichkeit bietet, JavaScript-Befehle auszuführen oder zu blockieren. Einige WebView-Implementierungen erlauben es, JavaScript-Einstellungen anzupassen oder spezifische Ereignisse zu überschreiben[1].

3. **Ereignisbehandlung in Delphi**:
- Wenn Ihre TWebView-Komponente Ereignisse wie `OnBeforeUnload` unterstützt, können Sie diese verwenden, um das Ereignis abzufangen und zu verhindern, dass es eine Warnung anzeigt. Dies erfordert jedoch spezifische Unterstützung durch die Komponente selbst.

4. **Verwendung von Drittanbieter-Bibliotheken**:
- In einigen Fällen können Drittanbieter-Bibliotheken oder Plugins helfen, die Kontrolle über Webinhalte und Popup-Verwaltung zu verbessern[1].

Durch diese Ansätze können Sie das unerwünschte "Webseite Verlassen"-Fenster in Ihrer Anwendung vermeiden und so eine reibungslosere Benutzererfahrung gewährleisten.

Citations:
[1] https://www.delphipraxis.net/215677-...webbowser.html
[2] https://www.askingbox.de/info/javasc...seite-anzeigen
[3] https://developer.mozilla.org/en-US/...reunload_event
[4] https://stackoverflow.com/questions/...e-app-regardle
[5] https://www.gutefrage.net/frage/gibt...e-zu-verlassen
[6] https://www.gutefrage.net/frage/wie-...e-verschwindet
[7] https://praxistipps.chip.de/moechten...dahinter_45357
[8] https://blog.bartlweb.net/2010/03/js...eite-anzeigen/
  Mit Zitat antworten Zitat
wschrabi

Registriert seit: 16. Jan 2005
456 Beiträge
 
#2

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

  Alt 24. Sep 2024, 20:08
Noch zu Guter letzt, einen Hinweis, der auch gut zu wissen ist:

In der TWebView-Komponente, die auf WebView2 basiert, gibt es spezifische Event-Handler, die nützlich sind, um Pop-ups zu blockieren oder zu verwalten. Hier sind einige relevante Event-Handler und Techniken:

1. **`NewWindowRequested`-Ereignis**:
- Dieses Ereignis wird ausgelöst, wenn eine Webseite versucht, ein neues Fenster zu öffnen. Sie können dieses Ereignis verwenden, um zu entscheiden, ob das neue Fenster geöffnet werden soll oder nicht. Durch das Abfangen dieses Ereignisses können Sie Pop-ups effektiv blockieren oder steuern[4][5].

2. **Benutzerdefinierter WebChromeClient**:
- Wenn Ihre Implementierung dies unterstützt, können Sie einen benutzerdefinierten WebChromeClient erstellen. In Android-WebViews wird beispielsweise die Methode `onCreateWindow` überschrieben, um das Erstellen neuer Fenster zu verhindern[5].

3. **JavaScript-Einstellungen**:
- Sie können die JavaScript-Einstellungen so konfigurieren, dass das automatische Öffnen von Fenstern verhindert wird. Beispielsweise kann die Einstellung `setJavaScriptCanOpenWindowsAutomatically(false)` in einigen WebView-Implementierungen verwendet werden, um das Öffnen von Pop-ups durch JavaScript zu blockieren[1].

Diese Event-Handler und Techniken bieten Ihnen die Möglichkeit, die Kontrolle über Pop-ups in Ihrer Anwendung zu behalten und unerwünschte Fenster effektiv zu blockieren oder zu verwalten.

Citations:
[1] https://stackoverflow.com/questions/...ascript-popups
[2] https://stackoverflow.com/questions/...n-handler?rq=3
[3] https://support.microsoft.com/de-de/...4-aa47339b6bb5
[4] https://github.com/MicrosoftEdge/Web...dback/issues/6
[5] https://www.delphipraxis.net/215677-...webbowser.html
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:10 Uhr.
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