Ich suche nach einer Möglichkeit, die Textauswahl auf einer Webseite zu verfolgen. Ich brauche Code, der ausgeführt wird, wenn die Auswahl geändert wird. Ich habe das erfolgreich in allen gängigen Desktop-Browsern gemacht, aber das scheint nicht für Firefox für Android zu funktionieren.JavaScript: Tracking Auswahl ändern auf Firefox für Android
versuchte ich drei Ansätze (keiner von ihnen arbeitete!):
- Versuchte das
"mouseup"
Ereignis zu kontrollieren und zu überprüfen, ob es eine nicht leere Textauswahl ist. Problem ist"mouseup"
wird nicht wird ausgelöst, wenn eine Auswahl während der mousedown-move-up Sequenz getroffen wurde! - Versucht, das gleiche mit dem
"touchend"
Ereignis zu tun - das gleiche Ergebnis. - Versucht, das Ereignis
"selectionchange"
zu fangen. Ich sah, dass es nicht ausgelöst wird, wenn die Auswahl ändert, wie es die Konfigurationsschlüssel"dom.select_events.enabled"
gesetzt werden muss. Dies istfalse
standardmäßig aktiviert und ich kann natürlich nicht meine Besucher fragen nach Browser-Einstellungen zu optimieren :-)
auch, wie erwartet, die ersten beiden Ereignisse nicht ausgelöst werden, wenn die Auswahl erweitert oder reduziert wird, indem Sie die Auswahl Start/Ende Marker.
Die einzige Lösung, die ich jetzt denken kann, ist ein periodischer Poller (mit setInterval), der überprüft, ob es eine Textauswahl gibt. Das ist definitiv unrein und anti-performance.
Alle Alternativen und/oder Ratschläge sind sehr hilfreich.
Danke
Wo binden Sie mouseup-Ereignis an body/document/html an? versuche eine Kombination von ihnen. –
Nur getestet auf Firefox Mobile und in der Tat löst es kein Ereignis aus>.> – seahorsepip
Sie können einen Poller erstellen, wenn eine Auswahl mit dem MouseUp-Ereignis gestartet wurde, und dann den Poller entfernen, wenn X-Sekunden lang keine Auswahl getroffen wurde . Ich kann mir nichts anderes einfallen lassen, um dieses Problem zu lösen, außer dass ich hoffe, dass das selectionchange-Ereignis bald zum Standard wird:/ – seahorsepip