2012-12-14 16 views
7

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?

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); 
+0

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

+3

@ Marco: Wybór jest dostępny przez 'window.getSelection()' i jest aktualizowany przez czas wybrania 'selectionchange'. –