Następujący scenariusz: Podczas wybierania tekstu w Safari na iOS (pozwala założyć "normalną" stronę html) pojawia się niebieska nakładka wskazująca, że wybrałeś określony fragment. Ponadto możesz zmienić ten wybór, aby poprawić początkowy obszar wyboru. Interesuje mnie przechwytywanie dokładnie tego wydarzenia, kiedy zmiana obszaru wyboru jest wykonywana. Czy jest możliwe (kiedy tak, jak?) Złapać takie zdarzenie w JavaScript? Z góry.Jak przechwytywać zdarzenie Safari w iOS przy zmianie zaznaczenia tekstu w JavaScript?
7
A
Odpowiedz
13
Mobile Safari obsługuje zdarzenie selectionchange
, które pożary na Document
węzłów:
document.addEventListener("selectionchange", function() {
alert("Selection changed!");
}, false);
3
Odkryłam, że to zdarzenie wyzwala wiele razy nawet na jednym słowem wyboru (z kranu), i oczywiście jest uruchamiany po przeciągnięciu uchwytów wyboru ...
Utworzono małe obejście, aby uzyskać tylko zdarzenie końcowe zaznaczenia tekstu.
można to zobaczyć tutaj: End of text selection event?
lub w małym post na moim blogu: http://www.dimshik.com/end-of-text-selection-event-on-ios-workaround/
dziękuję. selectionchange załatwił sprawę! Niestety, nie zawiera żadnych informacji o samej selekcji, prawda? Podczas inspekcji zdarzenia touchend na przykład, mogę znaleźć pomocne informacje na temat współrzędnych x/y lub zakresu wyboru. – Marco
@ Marco: Wybór jest dostępny przez 'window.getSelection()' i jest aktualizowany przez czas wybrania 'selectionchange'. –