Désélectionner sur double clic

Vous vous penchez sur le développement d'applications ou d'extensions pour Mozilla ? C'est alors vers ce forum que se dirigeront naturellement vos requêtes...
sarmane
Arias
Messages : 7
Inscription : 23 févr. 2006, 16:18

Désélectionner sur double clic

Message 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 :)
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message 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
sarmane
Arias
Messages : 7
Inscription : 23 févr. 2006, 16:18

Message 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 ?
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message 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...
sarmane
Arias
Messages : 7
Inscription : 23 févr. 2006, 16:18

Message par sarmane »

j'intercepte l'événement double clic de la fenêtre principale :
<window id="main-window" ondblclick="onDoubleClick(event);"/>
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message 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 .
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités