2010-06-20 5 views
5

Comme vous le savez bien, un double clic sur un mot dans un navigateur le sélectionne, un triple clic sélectionne le paragraphe entier.Question d'utilisabilité HTML - (double) cliquer pour sélectionner le texte

Je peaufinage un wiki, où les signatures pour les utilisateurs anonymes sont automatiquement créés et ils ressemblent:

--- // <ip.ad.dr.ess> //

Le " --- "génère un —, // est pour le texte en italique et génère <em> </em >.

Voici comment cela fonctionne maintenant, comme je l'ai tordu. Maintenant, je m'interroge sur la convivialité.

Ma question est: comment générer le balisage de telle sorte que lors d'un double-clic sur l'adresse IP, l'adresse entière et seulement l'adresse sera sélectionnée? Le langage de balisage n'a pas d'importance, vous pouvez fournir une solution en HTML, mais une spécifique pour les wikis (dokuwiki) est préférable.

Merci

+0

Ceci est certainement résoluble, mais la solution est susceptible d'être compliquée. À quoi ça sert? Ne serait-il pas plus facile de changer le wiki pour qu'il n'ajoute pas automatiquement le contenu? –

+0

Je suis celui qui peaufine pour ajouter ce contenu. Cela fonctionne, mais maintenant je m'interroge sur l'accessibilité – Flavius

+0

Qu'est-ce que c'est? Qu'entendez-vous par accessibilité? –

Répondre

5

Merci à tout le monde, mais j'ai réussi à le faire en utilisant un champ de texte en lecture seule sans bordures et avec la couleur de fond de l'arrière-plan du site. Double-cliquer fonctionne comme prévu, sans compter sur le script côté client.

2

Vous ne pouvez pas faire cela avec HTML. Peut-être avec Javascript. Fondamentalement, vous venez de détecter les doubles-clics dans une certaine zone, puis sélectionnez le texte approprié.

EDIT:

Voici comment le faire dans le navigateur conforme aux normes W3C (par exemple Firefox, il ne fonctionnera probablement pas dans IE, ce qui est un navigateur conforme aux normes W3C et utilise différents modèles de sélection de texte):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html> 
    <head> 
     <script type="text/javascript"> 
      function select(elem) { 
       var sel = window.getSelection(); 
       var range = sel.getRangeAt(0); 
       range.selectNode(elem); 
       sel.addRange(range); 
      }    
     </script> 
    </head> 
    <body> 
     <p>a simple paragraph, this is 
      <span onclick="select(this);">clickable area</span> 
      when this 
      <span ondblclick="select(this);">span tag is double-clicked</span> 
      then they will be selected 
     </p> 
    </body> 
</html> 
+0

Dans le dernier chrome, ce que je reçois en tant que premier paramètre de la fonction est l'événement, donc remplacé le paramètre avec 'e' et' elem' avec 'e.target' et cela a fonctionné magnifiquement. – haridsv

+0

Comme dans la documentation 'Event', le premier paramètre est en fait l'objet événement lui-même, pas l'élément. Voir https://developer.mozilla.org/en/docs/Web/API/Event. Edit: J'ai juste remarqué que vous passez explicitement 'this' comme premier paramètre. – haridsv

+0

@haridsv: c'est correct si vous attachez le gestionnaire d'événements avec addEventListener(). Lorsque l'événement est attaché en ligne avec l'attribut @onclick comme ici, les paramètres sont déterminés par tout ce que vous avez passé au gestionnaire, qui dans ce cas est 'this', qui est l'élément. De nos jours, il est probablement préférable de se connecter discrètement avec addEventListener() ou avec jquery plutôt que d'attacher à l'attribut onclick. –

Questions connexes