begin process at 2012 05 29 07:56:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Evènements

 > 

desactiver la selection d'un texte (sans utiliser onselectstart)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

desactiver la selection d'un texte (sans utiliser onselectstart)

mercredi 9 août 2006 à 18:05:22 | desactiver la selection d'un texte (sans utiliser onselectstart)

gzu51

Bonjour à tous.

Bon alors voila j'ai un problème sur lequel je me casse les dents :

Tout d'abord resumons la situation : j'ai 2 div, le premier contient du texte et est transparent (il ne sert qu'a afficher le texte), le deuxieme est vide et transparent (il me sert a créer une zone sensible et/ou a afficher des tooltips).

Ces deux div sont superposé en respectant bien le zIndex (le texte dessous et la zones sensible dessus) et tout se passe bien sauf que quand je passe ma souris sur le texte le curseur se transforme alors en curseur de selection et le div du dessus ne reagit plus aux clics...

La methode utilisant onselectctart me permet d'empecher la selection mais pas la transformation du curseur, mon div ne reagit donc toujours pas aux evenements souris.

Voici un exemple de code illustrant mon probleme :

[CODE]<html>
 <head>
  <title>createLinearGradient() basic test</title>
 
 </head>
 <body>
  <script>

   var txt = document.createTextNode("Mon texte");
   var mondiv1 = document.createElement("div");
   mondiv1.getAttribute("style").setAttribute("position", "absolute");
   mondiv1.getAttribute("style").setAttribute("background", "transparent");
   mondiv1.getAttribute("style").setAttribute("left", "0px");
   mondiv1.getAttribute("style").setAttribute("top", "0px");
   mondiv1.getAttribute("style").setAttribute("width", "80px");
   mondiv1.getAttribute("style").setAttribute("height", "15px");
   mondiv1.getAttribute("style").setAttribute("zIndex",1);
   mondiv1.appendChild(txt);
   document.body.appendChild(mondiv1);

   var mondiv2 = document.createElement("div");
   mondiv2.getAttribute("style").setAttribute("left", "0px");
   mondiv2.getAttribute("style").setAttribute("top", "0px");
   mondiv2.getAttribute("style").setAttribute("width", "150px");
   mondiv2.getAttribute("style").setAttribute("height", "40px");
   mondiv2.getAttribute("style").setAttribute("zIndex",2);
   mondiv2.getAttribute("style").setAttribute("cursor","pointer");
   mondiv2.setAttribute("title","Mon tooltip");
   document.body.appendChild(mondiv2);
  </script>
 </body>
</html>[/CODE]

Je me permet de repondre par anticipation a ceux qui dirons qu'il suffit de mettre mon tooltips et ma zone sensible sur le meme div que le texte : j'ai besoin de pouvoir les positionner independament l'un de l'autre et mes zones sensibles ne sont pas toujours sur du texte.

Donc voila, existe-t-il un moyen de virer ce curseur de selection ? ou de rendre mon div du dessous (ou mon texte) insensibles aux evenements souris ?

Merci d'avance pour votre aide.
jeudi 17 août 2006 à 12:37:11 | Re : desactiver la selection d'un texte (sans utiliser onselectstart)

PetoleTeam

Membre Club
Réponse acceptée !


B onjour...
pour que le DIV du dessus masque le DIV du dessous il faut qu'il couvre réellement le DIV du dessous, ce qui n'est pas le cas car il n'y a rien dans ce DIV...

Essaies ceci...

<html>
 <head>
  <title>createLinearGradient() basic test</title>
 </head>
 <body>
  <script>
   var mondiv1 = document.createElement("div");
   mondiv1.getAttribute("style").setAttribute("position", "absolute");
   mondiv1.getAttribute("style").setAttribute("backgroundColor", "#0000ff");
   mondiv1.getAttribute("style").setAttribute("left", "0px");
   mondiv1.getAttribute("style").setAttribute("top", "0px");
   mondiv1.getAttribute("style").setAttribute("width", "80px");
   mondiv1.getAttribute("style").setAttribute("height", "15px");
   mondiv1.getAttribute("style").setAttribute("zIndex",1);
   mondiv1.innerHTML= "Mon Texte";
   document.body.appendChild(mondiv1);

   var mondiv2 = document.createElement("div");
   mondiv2.getAttribute("style").setAttribute("position", "absolute");
   mondiv2.getAttribute("style").setAttribute("left", "0px");
   mondiv2.getAttribute("style").setAttribute("top", "0px");
   mondiv2.getAttribute("style").setAttribute("width", "150px");
   mondiv2.getAttribute("style").setAttribute("height", "40px");
   mondiv2.getAttribute("style").setAttribute("zIndex",2);
   mondiv2.getAttribute("style").setAttribute("cursor","pointer");
   mondiv2.setAttribute("title","Mon tooltip");
   mondiv2.innerHTML= "<TABLE BORDER=0><TR><TD HEIGHT=40 WIDTH=150>&nbsp;</TD></TR></TABLE>";
   document.body.appendChild(mondiv2);  
  </script>
 </body>
</html>

Je te laisses découvrir les modifs....

d'autre part si le script est directement dans le BODY pourquoi ne pas créer les DIVs directement
<DIV ID="DIV_1" STYLE=".......">Mon Texte</DIV>

;0)
jeudi 17 août 2006 à 14:18:35 | Re : desactiver la selection d'un texte (sans utiliser onselectstart)

gzu51

Réponse acceptée !

Merci de ta reponse, elle fonctionne tres bien.

J'ai trouvé une autre solution qui marche aussi (avec un gif transparent) :


<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <script>
   var str="Mon texte";
   var txt = document.createTextNode("Mon texte");
   var mondiv1 = document.createElement("div");
   mondiv1.getAttribute("style").setAttribute("position", "absolute");
   mondiv1.getAttribute("style").setAttribute("background", "transparent");
   mondiv1.getAttribute("style").setAttribute("left", "0px");
   mondiv1.getAttribute("style").setAttribute("top", "0px");
   mondiv1.getAttribute("style").setAttribute("width", "80px");
   mondiv1.getAttribute("style").setAttribute("height", "15px");
   mondiv1.getAttribute("style").setAttribute("zIndex",1);
   mondiv1.appendChild(txt);
   document.body.appendChild(mondiv1);

   var mondiv2 = document.createElement("img");
   mondiv2.src="tr.gif";
   mondiv2.onclick=function(){alert("ca marche  "+str);}
   mondiv2.getAttribute("style").setAttribute("position", "absolute");
   mondiv2.getAttribute("style").setAttribute("left", "0px");
   mondiv2.getAttribute("style").setAttribute("top", "0px");
   mondiv2.getAttribute("style").setAttribute("width", "200px");
   mondiv2.getAttribute("style").setAttribute("height", "100px");
   mondiv2.getAttribute("style").setAttribute("zIndex",2);
   mondiv2.setAttribute("title","Mon tooltip");
   document.body.appendChild(mondiv2);
  </script>
 </body>
</html>



Cette discussion est classée dans : texte, style, setattribute, getattribute, mondiv1


Répondre à ce message

Sujets en rapport avec ce message

Desactiver la selection d'un texte (mais pas comme tout le monde) [ par gzu51 ] Bon alors voila j'ai un problème sur lequel je me casse les dents : Tout d'abord resumons la situation : j'ai 2 div, le premier contient du texte et e FireFox setAttribute et style [ par fregolo52 ] Bonjour,suivant un événement dans ma page, je cherche à changer le style des mes contrôles.Sous IE, aucun souci, mais sous FF j'ai une erreur.Mon code lien affichant texte et supprime le précédent s'il y a(Javascript) [ par vincenzodelarossa ] Bonjour à tous. Petit soucis dans mes conditions mon script est: function Swap( div_){ var Obj = document.getElementById( div_); if( Obj) pb IE getAttribute('style') [ par JSBR ] Après avoir tourner des heure en rond sur google, mettre perdu dans la doc officiel de microsoft et avoir vue des trucks vraiment étrange, me voila à Fonction afficher / masquer [ par didygwatinik ] Bonjour, Sur mon site, j'aimerai pouvoir afficher ou "enlever" un texte quand l'utilisateur clique sur le titre de ce texte j'ai trouvé une fonction s Javascript faire un setAttribute de style avec FireFox [ par JPVIO ] Bonjour Je cherche à modifier la couleur d'un texte au survol de la souris OK dans une cellule d'un tableau cela fonction trés bien avec IE Mais pas compatibilité d'un script avec Opéra et Safari [ par tarentaise ] Bonjour, Un petit souci de compatibilité d'un script avec Opéra et Safari. J'ai sur mon site un script qui permet aux mal-voyants de changer la feui changement style onmouseover onmouseout - bordure tableau, Firefox et IE [ par sebortega ] Salut, j'écris un peu désespéré. Mon but est de mettre en évidence les lignes d'un tableau en les encadrant par une bordure grise en pointillé au pas Afficher / cacher (un seul s'affiche à la fois) [ par charlie101097 ] bonjour, En théorie, c'est d'après moi la bonne partie pour poster. Après avoir épluché le forum sur mon problème, je décide de poster car je n'ai pas Apliquer une feuille de style sur un texte d'un JavaScript [ par Siriusgalaxie26 ] Comment faire pour appliquer avec Dreamweaver MX une feuille de style sur un texte affiché par "document.write" ?SIRIUSVisitez le site http://mypage.b


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales