[JS] Enlever le menu du clic droit sous les navigateurs

Enlever le menu du clic droit sous les navigateurs [JS] - HTML/CSS - Programmation

Marsh Posté le 31-03-2004 à 17:52:07    

Salut, je voudrais faire apparaitre un menu sur mon site lorsqu'on fait un clic droit, le seul problème c'est que le menu propre du navigateur s'affiche aussi lorsqu'on fait un clic droit !
Comment est-ce que je peux l'enlever?  :??:  
 
Le seul moyen que j'ai trouvé jusqu'à maintenant est d'afficher un window.alert mais c'est pas trop agréable  :(  
 

Code :
  1. var ie = (document.all)? true:false;
  2. var ns4 = (document.layers)? true:false;
  3. var ns6 = (document.getElementById)? true:false;
  4. // Retourne la propriété style du calque 'id'
  5.  function calkStyle( id_calk )
  6.  {
  7.   if ( ie ) calk = document.all[id_calk].style;
  8.   if ( ns4 ) calk = document.layers[id_calk];
  9.   if ( ns6 ) calk = document.getElementById(id_calk).style;
  10.   return calk;
  11.  }
  12.                 function clic ( evenement )
  13.  {
  14.   var decal = 10;
  15.   if ( ( ie && event.button > 1 ) || ( ( !ie ) && evenement.which > 1 ) )
  16.   {
  17.    if ( ie )
  18.    {
  19.               //Récupération de la position de la souris
  20.               window.lastX = event.clientX;
  21.               window.lastY = event.clientY;
  22.    }
  23.    else if ( ns4 )
  24.    {
  25.               //Récupération de la position de la souris
  26.               window.lastX = evenement.pageX;
  27.               window.lastY = evenement.pageY;
  28.           }
  29.    else if ( ns6 )
  30.    {
  31.               //Récupération de la position de la souris
  32.               window.lastX = evenement.clientX;
  33.               window.lastY = evenement.clientY;
  34.    }
  35.    calkStyle( "menu" ).top = window.lastY + decal + "px";
  36.    calkStyle( "menu" ).left = window.lastX + decal + "px";
  37.    calkStyle( "menu" ).visibility = "visible";
  38.   }
  39.   return false;
  40.  }
  41. document.onmousedown = clic;

Reply

Marsh Posté le 31-03-2004 à 17:52:07   

Reply

Marsh Posté le 31-03-2004 à 20:03:48    

siouplé ...

Reply

Marsh Posté le 31-03-2004 à 20:08:56    

goldorak69 a écrit :

siouplé ...  


 
Non, ça n'existe pas.

Reply

Marsh Posté le 31-03-2004 à 22:55:04    

impossible (ça n'a aucun sens), très désagréable pour l'utilisateur.  
 

Reply

Marsh Posté le 02-04-2004 à 12:54:50    

merci, à tous, j'y suis enfin arrivé ( c'est donc tout à fait possible ).
 
Pour info, je mets le code au cas où...
 
 

Code :
  1. var ie = (document.all)? true:false;
  2. var ns4 = (document.layers)? true:false;
  3. var ns6 = (document.getElementById)? true:false;
  4. var message = "";
  5. // Affiche le div menu
  6.  function rightClic ( evenement )
  7.  {
  8.   var decal = 10;
  9.   if ( ( ie && event.button > 1 ) || ( !ie && evenement.which > 1 ) )
  10.   {
  11.    if ( ie )
  12.    {
  13.               //Récupération de la position de la souris
  14.               window.lastX = event.clientX;
  15.               window.lastY = event.clientY;
  16.    }
  17.    else if ( ns4 )
  18.    {
  19.               //Récupération de la position de la souris
  20.               window.lastX = evenement.pageX;
  21.               window.lastY = evenement.pageY;
  22.           }
  23.    else if ( ns6 )
  24.    {
  25.               //Récupération de la position de la souris
  26.               window.lastX = evenement.clientX;
  27.               window.lastY = evenement.clientY;
  28.    }
  29.    writeDiv ( debutMenu + menuDefaut + finMenu, "menu" );
  30.    calkStyle( "menu" ).top = window.lastY + decal + "px";
  31.    calkStyle( "menu" ).left = window.lastX + decal + "px";
  32.    calkStyle( "menu" ).visibility = "visible";
  33.    ( message );
  34.    return false;
  35.   }
  36.   return true;
  37.  }
  38. if ( document.layers )
  39. {
  40.  document.captureEvents( Event.MOUSEDOWN );
  41.  document.onmousedown = rightClic;
  42. }
  43. else
  44. {
  45.  document.onmouseup = rightClic;
  46.  document.oncontextmenu = rightClic;
  47. }
  48. document.oncontextmenu = new Function ( "return false" );

Reply

Marsh Posté le 02-04-2004 à 13:01:15    

goldorak69 a écrit :

merci, à tous, j'y suis enfin arrivé ( c'est donc tout à fait possible ).


 
Tu peux pas le mettre sur une page qu'on teste ta connerie pour faire chier l'utilisateur ?²


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 02-04-2004 à 13:28:27    

kadreg a écrit :


 
Tu peux pas le mettre sur une page qu'on teste ta connerie pour faire chier l'utilisateur ?²


+1 je demande à voir

Reply

Marsh Posté le 02-04-2004 à 13:52:01    

goldorak69 a écrit :

merci, à tous, j'y suis enfin arrivé ( c'est donc tout à fait possible ).
 
Pour info, je mets le code au cas où...
 


non ça ne marche pas.
 

Reply

Marsh Posté le 02-04-2004 à 16:39:47    

Il manque deux fonctions sur le code du dessus, les voilà:
 

Code :
  1. // Retourne la propriété style du calque 'id'
  2.  function calkStyle( id_calk )
  3.  {
  4.   if ( ie ) calk = document.all[id_calk].style;
  5.   if ( ns4 ) calk = document.layers[id_calk];
  6.   if ( ns6 ) calk = document.getElementById(id_calk).style;
  7.   return calk;
  8.  }
  9. // Affiche txt dans le div div_id
  10.  function writeDiv ( txt, div_id )
  11.  {
  12.   if ( ie ) document.all[div_id].innerHTML = txt;
  13.   if ( ns4 )
  14.   {
  15.    document.layers[div_id].document.open();
  16.    document.layers[div_id].document.write( txt );
  17.    document.layers[div_id].document.close();
  18.   }
  19.   if ( ns6 ) document.getElementById(div_id).innerHTML = txt ;
  20.  }


 
De plus, ne pas oublier de mettre un div avec l'id "menu" dans la page html.

Reply

Marsh Posté le 02-04-2004 à 17:33:36    

goldorak69 a écrit :

Il manque deux fonctions sur le code du dessus, les voilà:
 

Code :
  1. // Retourne la propriété style du calque 'id'
  2.  function calkStyle( id_calk )
  3.  {
  4.   if ( ie ) calk = document.all[id_calk].style;
  5.   if ( ns4 ) calk = document.layers[id_calk];
  6.   if ( ns6 ) calk = document.getElementById(id_calk).style;
  7.   return calk;
  8.  }
  9. // Affiche txt dans le div div_id
  10.  function writeDiv ( txt, div_id )
  11.  {
  12.   if ( ie ) document.all[div_id].innerHTML = txt;
  13.   if ( ns4 )
  14.   {
  15.    document.layers[div_id].document.open();
  16.    document.layers[div_id].document.write( txt );
  17.    document.layers[div_id].document.close();
  18.   }
  19.   if ( ns6 ) document.getElementById(div_id).innerHTML = txt ;
  20.  }


 
De plus, ne pas oublier de mettre un div avec l'id "menu" dans la page html.


 
ça marche toujours pas.  :sarcastic:

Reply

Marsh Posté le 02-04-2004 à 17:33:36   

Reply

Marsh Posté le 03-04-2004 à 10:17:56    

Non pis si vraiment tu veux faire chier l'utilisateur jusqu'au bout, pour qu'il puisse pas pomper le le code, tu fait du php qui génère du xml avec une belle feuille xsl bien compliquée (quand tu fais afficher la source tu tombe sur du xml et pas du html, supaiiir :D ), et pour les images du les récupère en php dans un dossier protégé par htaccess, tu les découpe en une vingtaine de morceaux (via GD) et tu les affiche, impossible de les copier.
Bien sur le mec peut aussi faire une copie d'écran pour les images, mais c'est pas la même chose. Et pour le php+xml+xsl, tu te fais chier 2 jours pour faire une malheureuse page toute pourrie.
 
Tout ca pour dire que tenter de protéger la source d'une page c'est bidon, ca fait chier l'utilisateur et ca ne t'apporte absolument rien, en quoi ca te gêne que les utilisateurs voient la source de la page? (respecte un peu le principe du libre, laisse la source des pages accéssible, tout le monde y gagne :o )

Reply

Marsh Posté le 03-04-2004 à 14:55:18    

Et puis je suis sur que son truc ne marche pas sous mozilla...
Et puis il reste toujours le ctrl+U (sous mozilla) et le afficher la source sous ie ;)


---------------
Licence Professionnelle Multimedia Internet Webmaster | Des articles, des aides, des scripts .... le tout disponible sur mon site.
Reply

Marsh Posté le 10-10-2010 à 10:39:47    

non cela ne fonctionne pas test sur google chrome


---------------
http://jeanmichel.gens.free.fr
Reply

Marsh Posté le 10-10-2010 à 10:55:42    

ni sur firefox d'ailleurs ça ecrit bien ton texte mais en aucun cas ça ne supprime le menu imposé par le navigateur  
je n'ai pas réussi non plus à le virer mais ce que je fais c est que j'efface le contenu de la page sur un clic droit  
document.body.innerHTML=""; ce qui n'évite pas le crontol U


---------------
http://jeanmichel.gens.free.fr
Reply

Marsh Posté le 10-10-2010 à 14:15:58    

Heureusement que tu es là pour remonter un topic vieux de 6 ans afin de sortir des stupidités pareilles


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 10-10-2010 à 20:02:21    

[:dream49]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 10-10-2010 à 23:04:09    

aspegic500mg +1 :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed