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/