Gibt es jemanden da draußen, der weiß, wie das Verhalten des Safari Web Browsers zu handhaben ist, der die aktuelle Seite auf die vorherige Seite setzt, wenn Benutzer die Rücktaste gedrückt haben? Dieses Problem tritt derzeit bei Mac OSX Lion 10.7.2 und einer Silverlight-Anwendung auf, wenn unsere Benutzer Felder mithilfe der Rücktaste/Entf-Taste korrigieren wollten.Safari Mac OSX Backspace-Probleme
Antwort
Ich hatte dieses Problem in der Vergangenheit auch. Ich verbrachte eine gute Woche oder so versuchen, mit einer Lösung zu kommen, und schließlich den besten Weg, um dieses Problem zu arbeiten (ich fand nie eine „reparieren“ sozusagen) war die folgende:
Suspend all der Rücktaste Schlüssel Ereignisse mit Javascript. Lassen Sie keine Backspace-Ereignisse den Silverlight-Container erreichen. Dies bedeutet, dass Silverlight Sie nie mehr zur vorherigen Seite bringt, aber Sie können auch keinen Text in einem Textfeld löschen! In Punkt 2 wird erläutert, wie dies zu umgehen ist.
Verbinden Sie einen
KeyUp
Event-Handler mit demRootVisual
Ihres Silverlight-Steuerelements.KeyEventArgs
'Originalquelle ist ein TextField und der Schlüssel selbst warKey.Back
, dann müssen wir manuell Text innerhalb des Textfelds löschen. Wir tun dies, indem wir die Eigenschaften der TextBoxSelectionStart
undSelectionLength
betrachten.SelectionStart
gibt Ihnen den Speicherort, von dem Sie löschen möchten, und gibt Ihnen an, wie viele Zeichen Sie löschen möchten. Schließlich müssen Sie herausfinden, wo sich der Cursor jetzt befinden soll. Dies sollte nur dem Wert der EigenschaftSelectionStart
entsprechen.
Es gibt einen Fehler bei diesem Ansatz. Da wir die Ereignisse KeyUp
manuell abhören müssen, wird das Ereignis Key.Back
KeyUp
nur ausgelöst, wenn die Rücktaste losgelassen wird. Dies bedeutet, dass wenn Sie Safari verwenden und die Rücktaste gedrückt halten, nur ein Zeichen gelöscht wird. Sie müssen die Rücktaste loslassen und erneut drücken, um ein anderes Zeichen zu löschen. Dies ist ein kleiner Preis, der meiner Meinung nach jedoch zu zahlen ist, wenn man bedenkt, dass die Alternativen die vorherige Seite anzeigen oder Backspace überhaupt nicht behandeln!
Es ist erwähnenswert, dass all dies Mac/Safari-spezifisch sein kann. Sie können den Browsertyp HtmlPage.BrowserInformation.UserAgent
verwenden und nur den Handler RootVisual_KeyUp
anhängen, wenn der Browser Safari ist. Wenn Sie in Safari auch nur Rückschritt-Ereignisse in Javascript aussetzen, wirkt sich dies nur auf Mac/Safari aus und behält die Standardfunktionalität für jeden anderen Browser bei.
Viel Glück! Hoffe das hilft!
- 1. cvs für Mac OSX
- 2. Berechtigungen auf Mac OSX
- 3. red5 mac osx installation
- 4. Lock/Unlock mac osx
- 5. Mac OSX - Xcode Installationsverzeichnis
- 6. OSX Safari-Rahmen lädt Unterbrochen
- 7. Playframe reload funktioniert nicht Mac OSX
- 8. Durchsuchen der Mac OSX-Systemwörterbücher?
- 9. Erhöhen rlimit Mac OSX 10.8
- 10. Numpy Installiere Mac Osx Python
- 11. Eclipse Tastaturkürzel in Mac OSX
- 12. pyside Importfehler auf Mac OSX
- 13. NSFetchedResultsController Mac OSX Cocoa gleichwertig
- 14. Android Emulator Mac OSX Ort
- 15. Installation BeautifulSoup auf Mac OSX
- 16. Swift Mac OSX NSButton Titelfarbe
- 17. Dateien rekursiv umbenennen Mac OSX
- 18. Safari auf MAC Überspringen Eingabefelder
- 19. Überlauf: Auto funktioniert nicht in Safari OSX
- 20. Weird gelbe Hintergrundfarbe erscheint in OSX Safari
- 21. Wakanda tötet Safari auf IOS und OSX
- 22. SharePoint WSS 3.0 Integration mit Mac OSX (entweder Safari oder Firefox)
- 23. Running Cucumber Tests mit Selen auf Mac OSX 10.11 für Safari
- 24. Unterschiede zwischen Safari für Windows und Safari für Mac
- 25. Versucht, wxpython unter Mac OSX zu installieren
- 26. Wie kompiliere ich RarCrack unter Mac OSX?
- 27. Mac OSX/iPhone Fehlerbehandlung im App Delegate?
- 28. Add-in persistente Einstellungen in OSX/Mac
- 29. Berechtigungen Problem mit Docker und Mac OSX
- 30. Installieren von Pandas unter Mac OSX
Warum hat jemand meine Antwort abgelehnt? Es ist eine voll funktionsfähige Lösung, für die ich jetzt ohne Beanstandungen eingesetzt habe. Ich habe erklärt, warum es keine perfekte Lösung ist, aber ich bezweifle sehr, dass Sie eine finden werden, während dieser Safari/Silverlight-Fehler existiert. –