Page 1 sur 1
Désélectionner sur double clic
Publié : 24 févr. 2006, 16:05
par sarmane
Comment puis-je désélectionner un texte dans une page web lors de l'événement double clic ? Si je double clique sur un texte automatiquement une partie est sélectionnée. j'ai bien trouvé des instructions pour sélectionner, mais .. pas pour faire le contraire

Publié : 24 févr. 2006, 17:34
par martin
Toujours de mémoire :
récupérer la selection actuelle:
var mySelection = window.getSelection();
la déselectionner (en fait faire correspondre le début et la fin de selection):
mySelection.collapseToEnd();
ou
mySelection.collapseToStart();
Attention avec les double-clics, ils peuvent s'avérer pénibles à gérer, car ils sont en fait une succession d'autres événements, c'est à dire qu'il y aura un ou des simple clic déclenché avant le double, or un simple clic sur une page désélectionne déjà ton texte !
docs:
http://developer.mozilla.org/en/docs/DOM:Selection
http://mozref.com/reference/objects/Selection
Publié : 06 mars 2006, 15:38
par sarmane
la sélection est vide
j'intercepte l'événement ondblclick
apparemment la sélection du texte se fait après l'événement ondblclick
existe-t-il une alternative ?
Publié : 06 mars 2006, 16:14
par martin
sarmane a écrit :
j'intercepte l'événement ondblclick
Sur quel objet ?
Et comment as tu enregistré ton événement ?
Un peu de code pourrait aider...
Publié : 06 mars 2006, 17:44
par sarmane
j'intercepte l'événement double clic de la fenêtre principale :
<window id="main-window" ondblclick="onDoubleClick(event);"/>
Publié : 06 mars 2006, 18:06
par martin
Si je ne me trompe le window avec l'id "main-window" c'est la fenêtre globale de Firefox, ta fonction n'agit donc pas sur la page web affichée que tu visites...
Dans cette fenêtre, pour obtenir le window correspondant à la page visitée:
Code : Tout sélectionner
var w = getTopWin();
var browser = w.document.getElementById("content");
var visitedWindow = browser.browsers[browser.mTabBox.selectedIndex];
(il y a sûrement d'autres chemins possible, cherche avec l'inspecteur DOM)
Tu peux ensuite enregistrer ta fonction dans le bon "contexte", a savoir visitedWindow .