menu pour click droit compatible mozilla & ie

4/5 (9 avis)

Vue 10 771 fois - Téléchargée 806 fois

Description

le même que celui de GuilleW 16394 mais avec prise en charge Mozilla

Source / Exemple :


document.write("<style>h3{COLOR:'#555555'; font: 11px 'Trebuchet MS', Tahoma, Geneva, Arial, Helvetica, sans-serif;} #mleft{COLOR: #0FB000; text-align:center; float:left; width:132px; margin-bottom:2px;} .cbar h3{font-weight:bold; background-image:url(mimg/mh.gif); background-position: top left; margin:0px 3px;text-align:left; padding: 9px 8px 3px 8px; line-height:13px;} .cbar .box {background-image:url(mimg/mb.gif); background-position:bottom left; background-repeat:no-repeat; margin:0px 3px 3px 3px; text-align:left; width:126px; padding-bottom:5px; overflow:hidden;} ul.menu li{background-image:url(mimg/mp.gif); background-repeat: repeat-x; padding: 3px 3px;} ul.menu li div{background-image: url(mimg/mg.gif); background-position: 0px 5px; background-repeat: no-repeat; padding-left: 9px; margin-left:3px; line-height:14px;} UL {margin: 0 5px; list-style-type: none;}</style>")
var mavar='?mavar='; // est ajouté comme variable GET à toute page appelée le contenu est spécifié ligne 17 & 18 par défaut la valeur de l'url
var mavar2='?mavar2=monurl';// Sert si vous voulez ajouter une variable à l'adresse(voir dans div)
var n=new Boolean();if(navigator.appName=='Netscape'){n=true;}else{n=false;} // Netscape(Mozilla) ou IE par défaut
function afficher_menu(e){
 if(n){gauche=e.pageX;if(window.innerWidth-e.pageX<document.getElementById('m').offsetWidth){gauche-=document.getElementById('m').offsetWidth;}
	haut=e.pageY;if(window.innerHeight-e.pageY<document.getElementById('m').offsetHeight){haut-=document.getElementById('m').offsetHeight;if(haut<0){haut=5}}
	with(document.getElementById('m').style){left=gauche; top=haut; visibility='visible';}}
 else{gauche=document.body.scrollLeft+event.clientX;if(document.body.clientWidth-event.clientX<m.offsetWidth){gauche-=m.offsetWidth;}
	haut=document.body.scrollTop+event.clientY;if(document.body.clientHeight-event.clientY<m.offsetHeight){haut-=m.offsetHeight;if(haut<0){haut=5}}
	with(m.style){left=gauche; top=haut; visibility='visible';}}return false;}
function cacher_menu(){if(n){document.getElementById('m').style.visibility='hidden';}else{m.style.visibility='hidden';}}
function menu_over(e){if(n){if(e.target.className=='rub'){with (e.target.style){color='#0FBFFF';}window.status=e.target.getAttribute('url'); }}
 else{if(event.srcElement.className=='rub'){with (event.srcElement.style){color='#0FBFFF';}status=event.srcElement.url; }}}
function menu_out(e){if(n){if(e.target.className=='rub'){with (e.target.style){color='#0FB000';}window.status='';}}
 else{if(event.srcElement.className=='rub'){with(event.srcElement.style){color='#0FB000';}status='';}}}
function menu_click(e){if(n){if(e.target.className=='rub'){location=e.target.getAttribute('url')+mavar+e.target.getAttribute('url');}}
 else{if(event.srcElement.className=='rub'){location=event.srcElement.url+mavar+event.srcElement.url;}}}
document.oncontextmenu=afficher_menu;document.onmouseover=menu_over;document.onclick=menu_click;document.onmouseout=menu_out;
document.write("<div id='m' style='position: absolute; visibility: hidden; width:126px; cursor: default; font: menu;'><div id='mleft' class='cbar'> <h3> :: Menu  ::</h3><div class='box'><ul class='menu'><li><div class='rub' url='javascript:history.go(-1)'> Précédent </div><div class='rub' url='javascript:history.go(1)'> Suivant </div><div class='rub' url='javascript:history.go(0)'> Actualiser </div></li><li><div class='rub' url='accueil.php'>Accueil</div><div class='rub' url='lienvariable.htm"+mavar2+"'>lien variable</div></li><li><div class='rub' url='galerie.htm'>Les Galeries Photos</div><div class='rub' url='salle.htm'>La Salle D'Armes</div><div class='rub' url='video.htm'>Les Videos</div> <div class='rub' url='intro.htm'>Intro du Spectacle</div></li><li><div class='rub' url='news.htm'>Les News</div><div class='rub' url='stage.htm'>Les Stages</div></li><li><div class='rub' url='formulaire.htm'>Ecrivez-Nous . . .</div><div class='rub' url='livre.htm'>Le Livre d'Or</div><div class='rub' url='liens.htm'>Les Liens Simpas</div></li></ul></div></div></div><body onClick='cacher_menu()'>")

Conclusion :


Sauvez le script çi dessus sous mimg/mdroitnet.js

et dans le BODY de votre page ajoutez :

<script src=mimg/mdroitnet.js></script>

Attention les images de fonds sont dans le zip aussi il est nécéssaire de télécharger le zip si vous n'avez pas la version deGuilleW (source16394) car sinon le résultat serait decevant.. Alors bien sur Netscape affiche le div comme il veut mais si vous avez des améliorations n'hésitez pas... je bosse actuellement pour pouvoir l'afficher sur des éléments précis de la page mais j'y arrive pas...

Codes Sources

A voir également

Ajouter un commentaire Commentaires
chmel Messages postés 75 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 12 octobre 2004
23 juin 2004 à 11:01
techniquement c'est un script interressant et bien construit. Le mieux aurait été de d'abord respecter les standards :
- 2fois la balise body
- utilisation de <div url="adresse du lien" au lieu de <a href="adresse du lien". Cela aurai permis de supprimer les fonctions menu_over(),menu_out() et menu_clic() inutiles dans ce cas.

En temps qu'utilisateur, je boycote le site qui usurpe mon menu contextuel du clic droit.
cs_daeron Messages postés 111 Date d'inscription mardi 8 janvier 2002 Statut Membre Dernière intervention 19 décembre 2006
1 oct. 2004 à 10:43
tres bon code mais si je peux me permettre, evite de tout ecrire sur une ligne c est penible a lire :-(
avec 2-3 vrais commentaires cela aurait ete parfait...

En tout cas ca marche bien sous IE, bravo.
cs_adam06 Messages postés 5 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 28 octobre 2004
28 oct. 2004 à 23:12
Chmel, vient pas sur mon site alors :D !
Je vais le mettre deès demain, il est vraiment bien ;)


Et une bonne note pour l éléve piedpierre !
cabolove Messages postés 3 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 25 août 2006
20 déc. 2004 à 23:43
ca marche sous firefox, mais sous ie j'ai le menu contextuel d'ie qui s'affiche en meme temps. Comment desactiver ce dernier pour ne garder que le menu personnalisé?
piedpierre Messages postés 29 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 20 février 2007
21 déc. 2004 à 06:53
on doit pouvoir ajouter un return false a la fin de la fonction afficher menu.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.