Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to capture iOS Safari event on text selection change within Javascript?

Following scenario: When selecting text on iOS Safari (lets assume a "normal" html page) an blue overlay occurs, indicating that you have selected a specific passage. Furthermore, you are able to change that selection, in order to correct your initial selection area. I'm interested in capturing exactly that event, when selection area change is done. Is it possible (when yes, how?) to catch such an event within Javascript? Thx in advance.

like image 807
Marco Avatar asked Dec 14 '12 12:12

Marco


2 Answers

Mobile Safari supports the selectionchange event, which fires on Document nodes:

document.addEventListener("selectionchange", function() {
    alert("Selection changed!");
}, false);
like image 129
Tim Down Avatar answered Oct 19 '22 14:10

Tim Down


I've found that this event fires multiple times even on a single word selection (with a tap), and of course it fires when you drag the selection handles ...

I created a small workaround to get only the text selection end event.

you can see it here: End of text selection event?

or in a small post on my blog: http://www.dimshik.com/end-of-text-selection-event-on-ios-workaround/

like image 45
dimshik Avatar answered Oct 19 '22 15:10

dimshik