2009-09-08 12 views
6

Je dois empêcher les utilisateurs de sélectionner des éléments dans l'interface utilisateur de mon application Web, , sauf pour le texte dans les zones de saisie et les zones de texte. Pour Firefox, la technique semble être d'utiliser cette css:Champs de saisie et zones de texte sélectionnables, mais aucun autre contenu sélectionnable dans Firefox?

* { -moz-user-select: none; } 

Et cela fonctionne assez bien (testé Firefox 3.5.2), sauf que vous ne pouvez pas sélectionner puis dans les champs d'entrée ou textareas.

J'ai essayé le divisant en

div,td,span,img { -moz-user-select: none; } 
input,textarea { -moz-user-select: text; } 

cependant, si le champ d'entrée est à l'intérieur d'un div, td, ou la durée, il ne peut être sélectionné. Il semble que la propriété -moz-user-select soit également appliquée à tous les enfants, peu importe si ces enfants remplacent le paramètre. Est-ce que quelqu'un sait un moyen de contourner cela en dehors de mettre cela à un niveau beaucoup plus granulaire (et ennuyeux) pour des éléments spécifiques?

NOTE Ce n'est pas à des fins de sécurité. Je vais bien avoir les utilisateurs voir la source ou les utilisateurs avancés éteindre cela. Mais pour les interfaces utilisateur Web avec fonction glisser-déposer, ou simplement celles qui sont censées se comporter comme une application en général plutôt que comme un document, il est vraiment étrange de pouvoir sélectionner accidentellement du texte. Et cela arrive souvent pour la plupart des utilisateurs.

Répondre

12
* { -moz-user-select: -moz-none; } 
input,textarea { -moz-user-select: text; } 
+0

merci, ça a marché !!!! – TheBrain

+0

ne fonctionne pas pour moi ... – jlarson

+2

ah merde, je viens de réaliser que j'avais "none" pas "-moz-none". Vous décerner la prime que je viens d'attribuer dès que je suis autorisé à !! – jlarson

1

Vous combattez une cause perdue. Si je veux vraiment sélectionner du texte sur votre page, ou le faire d'une certaine façon, je le ferai.

Cependant, à votre question. Essayez d'ajouter importante à la fin, il ressemble à ceci:

div,td,span,img { -moz-user-select: none; } 
input,textarea { -moz-user-select: text !important; } 
+2

Il n'est pas pour des raisons de sécurité et je ne se soucient pas si l'utilisateur affiche la source ou quoi que ce soit. C'est parce que pour une raison quelconque les gens sélectionnent accidentellement des trucs et c'est dingue parce que c'est une application et en général la sélection des éléments ui ("boutons" formés d'éléments html composites par exemple) semble maladroit ... – jlarson

+0

..oh, et plus important,! important n'a pas l'air d'aider, j'ai essayé cela, aurait dû mentionner! merci bien – jlarson

Questions connexes