Voir cette démo (en fonction de l'événement SelectionChange qui fonctionne dans Chrome seulement à ce moment): http://jsfiddle.net/fyG3H/JavaScript Prévenir window.getSelection() référence circulaire
Sélectionnez un texte lorem ipsum puis concentrer la saisie de texte. Dans le journal de la console, vous verrez qu'il y a un objet DOMSelection. Il a une valeur anchorNode de HTMLBodyElement
alors qu'il devrait avoir un de Text
.
Je ne savais pas pourquoi ce qui se passait jusqu'à ce que j'ai essayé stringfying l'objet de sélection: http://jsfiddle.net/fyG3H/1/
Cela donne l'erreur suivante:
Uncaught TypeError: Converting circular structure to JSON
Savez-vous comment je peux empêcher cette référence circulaire causé par window.getSelection()?
EDIT
Nouvelle démo qui fonctionne dans d'autres navigateurs, mais aussi donne toujours le mauvais anchorNode: http://jsfiddle.net/fyG3H/5/
Et avec JSON.stringify: http://jsfiddle.net/fyG3H/6/
Firefox semble retourner un vide { } au lieu de lancer une erreur.
votre violon manque bibliothèque de json2. – Mrchief
JSON est un objet natif dans ECMAScript 5. Il n'est pas nécessaire d'inclure une bibliothèque. – DADU
Vraiment? Et nous savons tous combien de navigateurs supportent cela ... n'est-ce pas? – Mrchief