Non c'è modo cross-browser di rilevare le modifiche alla selezione. IE (a partire dalla versione 5.5, credo) e i browser WebKit/Blink (ad esempio la versione di Chrome, Safari e Opera degli ultimi due anni) supportano un evento selectionchange
sullo document
che fa esattamente ciò che si desidera.
Firefox e pre-Blink Opera non hanno questo evento e tutto ciò che puoi fare è rilevare le modifiche apportate alla selezione tramite eventi di tastiera e mouse, il che è insoddisfacente (non c'è modo di rilevare "Seleziona tutto" dal menu di contesto o modifica, ad esempio), o semplicemente eseguire il polling dell'oggetto restituito da , anchorOffset
, focusNode
e focusOffset
proprietà rispetto ai valori precedenti dovrebbe essere sufficiente).
fonte
2012-01-27 14:50:42
possibile duplicato di [Come monitorare il cambiamento selezione finestra evento in javascript] (http://stackoverflow.com/questions/5139623/how-to-monitor-window-selection-change-event-in-javascript) –
non è un duplicato perché ho bisogno di monitorare l'evento di selezione finestra, non per un input –
In realtà penso che sia un duplicato, come l'altra domanda sembra chiedere la stessa cosa piuttosto imprecisa, ma le risposte ci sono inutile. Un duplicato migliore è questo: http://stackoverflow.com/questions/8442158/selection-change-event-in-contenteditable –