MENU CONTEXTUEL PERSONNALISABLE POUR CLIC DROIT

rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 - 29 sept. 2006 à 23:04
pascalhemme Messages postés 3 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 12 juillet 2013 - 12 juil. 2013 à 11:30
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/39742-menu-contextuel-personnalisable-pour-clic-droit

pascalhemme Messages postés 3 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 12 juillet 2013
12 juil. 2013 à 11:30
super librairie... j'utilise et c'est impeccable,

par contre, auriez-vous une nouvelle version qui fonctionne sur Ipad? (ou quelqu'un ici connait-il?)

d'avance merci pour vos réponses
pastorius44 Messages postés 1 Date d'inscription samedi 30 octobre 2010 Statut Membre Dernière intervention 24 février 2011
24 févr. 2011 à 21:36
Exactement ce que je cherchais !

MERCI !
Haks1 Messages postés 1 Date d'inscription samedi 8 janvier 2011 Statut Membre Dernière intervention 8 janvier 2011
8 janv. 2011 à 16:41
Bonjour,

Superbe lib :) c'est génial, merci !

juste une chose, si je souhaite récupérer des informations depuis l'élément sur lequel j'ai fait un click droit, comment je fais ?

exemple simple:
un div contient une liste de prénoms, dans le menu contextuel (activé pour ce div) j'ai une option "afficher le prénom" qui affiche le prénom dans un alert()
(event.scrElement prend en compte le click sur le menu et non le click sur l'élément :( )
Frounch13 Messages postés 1 Date d'inscription lundi 18 janvier 2010 Statut Membre Dernière intervention 2 juillet 2010
2 juil. 2010 à 10:23
Super librairie !
Elle est vraiment pratique \°/
DaD92 Messages postés 9 Date d'inscription lundi 19 juin 2006 Statut Membre Dernière intervention 9 janvier 2010
9 janv. 2010 à 16:06
Salut, super cette librairie.

Il marche impec.
Par contre, je n'arrive pas à faire passer mess variables.
Je m'explique.
je me nu contextuel est lancé par :
oncontextmenu="menu = menu_intro('intro', 1);menu.mousePositionCapture(event);menu.open();" onMouseOut="document.oncontextmenu = function(){menu.close();

les variable intro et 1 que je passe avec la fonction menu_intro('intro', 1) se nomme nom_champ et num_champ.

ensuite dans le menu contextuel, voilà une des partie du menu :

{

'ItemName': 'Ajouter une mesure',
'Action': 'add_champ(\''+nom_champ+'\', '+num_champ+')',
'Image': null

}
quand je regarde le débogue, je m'apperçois que la variable nom_champ et num_champ ne sonnt pas passer à l'appel de la fonction add_champ().

Peux tu m'aider?
azraeht Messages postés 18 Date d'inscription vendredi 29 août 2008 Statut Membre Dernière intervention 18 mai 2010
13 août 2009 à 11:58
Salut!

Vraiment super comme source! J'essai de l'utiliser dans une appli ASP.NET/C# mais je rencontre un problème tout bête:
-En faite, pour chaque <td> d'un tableau (en ajoutant: td.Attributes.Add("oncontextmenu", "menu = menuFreeCells();menu.mousePositionCapture(event);menu.open();");)
Jusque là tout va bien, ma fonction menuFreeCells() me renvoi bien le menu qui est créé.
Ce que je n'arrive pas c'est à transmettre l'id de mon <TD> au menu...

Est-ce que tu aurais une solution a me proposer?
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
9 avril 2009 à 16:11
Alors la chapeau :) Je cherche et je tombe sur cette source et j'adopte ! ;) Vraiment je suis bluffe par la simplicité et sa marche bien sous firefox, dommage que ce soit pas compatible avec certains navigateurs mais bon c'est déjà excellent :)
A mon avis sa vaut bien ses 9/10, si je met pas 10 c'est pour la compatibilité mais niveau intégration c'est vraiment parfait;) Seb37 je ne comprends pas le 1/10 c'est vraiment vache comme note... Merci pour ce script !
nodelhome Messages postés 5 Date d'inscription mercredi 3 septembre 2003 Statut Membre Dernière intervention 2 mars 2009
2 mars 2009 à 08:06
Bonjour,
Ce script est vraiment très bien ficelé !!
cependant je rencontre un petit soucis, quand je quitte l'élément sur lequel j'ai fait un clic droit, le menu ne disparait pas, en connaissez-vous la raison ?

Petite info pour Seb37, il est tout à fait possible d'utiliser ce script avec pratiquement n'importe quel élément html.
Il est aussi possible de le rendre dynamùique en lui envoyant en paramètre ce qu'on veut afficher dans le menu.
Perso, je l'ao utiliser sur des <tr> et les données affichées dans le menu étaient modifiées dynamiquement en fonction de données d'une DB

Encore un grand merci pour ce script vraiment très bon
cs_seb37 Messages postés 1 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 28 mai 2008
28 mai 2008 à 16:30
dommage qu'on doit etre dans les div pour avoir le clic droit...
CyberDenix Messages postés 17 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 24 décembre 2007
24 déc. 2007 à 13:47
Marche pas sous Opera.
deboutv Messages postés 2 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007
3 déc. 2007 à 19:20
Un truc qui peut-être sympa c'est de mettre des titres (détectables par l'absence d'action) : http://dl.free.fr/mkCj6uT4F/context-menu.png
christianmusique Messages postés 5 Date d'inscription lundi 17 avril 2006 Statut Membre Dernière intervention 3 septembre 2013
4 avril 2007 à 17:57
Bonjour,
Ton code de gestion de menu contextuel m'intéresse beaucoup et je te remercie de l'avoir publié sur le web. Je voudrais l'intégrer dans une application de planning écrite en php4/5. Mon problème est le suivant:
Avec la souris, l'utilisateur se positionne sur une ligne qui a été dessinée sur l'écran et qui identifie à la fois un jour de la semaine et un profil.
Lorsque l'utilisateur fait un clic droit, un menu contextuel apparait qui liste les personnes disponibles.
Lorsque l'utilisateur fait un clic gauche sur la personne choisie, on déclenche un prog php en lui passant en paramètre a position en y de la souris, et l'identifiant de la personne choisie.
Il y a 2 choses que je parviens pas à faire avec ton code, sans doute parce que j'ai mal compris l'interaction entre javascript et php et peut être aussi parce que je ne vois pas comment générer des textes, images et actions menu dynamiquement. Comment faire pour:
1. Récupérer depuis php les identifiants et noms des personnes disponibles, pour afficher le nom de personne dans le menu contextuel,
2. Lors du clic gauche, déclencher un prog php en lui passant la position y de la souris et l'identifiant de la personne.
Pourrais-tu me mettre sur une bonne piste ?
ChristianMusique
OB1_12 Messages postés 6 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 13 décembre 2006
13 déc. 2006 à 11:24
Juste pour dire que j'ai mis mon source de mon menu contextuel. C'est moins bien codé que celui de Rubiks mais il y a des fonctionnalité en plus pour ceux que ca interesse ou pour donner des idées à certains ...
http://www.javascriptfr.com/code.aspx?ID=40666
A+
OB1_12 Messages postés 6 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 13 décembre 2006
8 déc. 2006 à 19:56
j'ai celui la : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

En fait, je me suis mis toute l'aprem sur le code est en utilisant une partie de ton javascript, j'ai réussi à supprimer le bug que j'avais avec le doctype... Le problème venait lorsque je calculais les coordonnées de ma souris...

Merci quand même en tout cas ... ;-)
++
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
8 déc. 2006 à 12:02
A oui ?? quel doctype as-tu ??
OB1_12 Messages postés 6 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 13 décembre 2006
8 déc. 2006 à 11:28
Salut rubiks,
Bah tant pis pour moi ;-)
Je l'ai fait sinon avec mon application d'origine mais il ne marche pas avec mon doctype alors je suis un peu coincé ...
Merci en tout cas d'avoir répondu aussi vite ....
A+
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
8 déc. 2006 à 09:47
Salut.

Non je suis désolé mais ce que tu demandes est impossible avec ma librairie de menu contextuel et je suis quasiment certain que c'est impossible avec toutes les librairies de menu contextuel que tu trouveras sur le net.
Je n'ai pas dit que c'est impossible mais pour faire ca il faudrait créer une librairie spécifique à ton utilisation. Et c'est vrai que ce n'est pas une très bonne solution de creer un nouveau menu sur des éléments lorsque ceci sont nombreux.
Mais cette utilisation étant peu utilisée je n'ai pas décidé de l'implémenter. Peut-être que dans un futur proche je programmerai une nouvelle librairie plus souple...

Voilà merci pour tes commentaires
@+
OB1_12 Messages postés 6 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 13 décembre 2006
7 déc. 2006 à 14:09
Salut tous le monde ....

Je trouve que ce menu contextuel est vraiment bien fait, il marche avec tous les navigateurs et "doctype"... c'est nickel...

J'ai voulu du coup l'utiliser sur mon site en voulant le changer un peu pour mon application mais j'avoue que j'y arrive pas ;-(
Du coup je me suis dis que tu pourrais peut être me donner un coup de main.
Je m'explique : J'ai besoin d'un menu global utilisé sur toute les pages de mon site (pour l'instant c'est pas dure).
Sauf que j'aimerai intégré une option supplémentaire suivant l'endroit où la souris se trouve sans passer par x fonctions javascript initialisant à chaque fois un nouveau menu ... (car il y en aurait trop)
Je sais pas si j'ai bien posé le problème et si il y a une solution ...

Merci d'avance en tous cas ... A+
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
20 nov. 2006 à 11:54
Quelle déclaration.... lol

Vraiment merci a vous ca fait plaisir de voir que mes sources intéressent du monde!!!
toutphp Messages postés 107 Date d'inscription lundi 24 mai 2004 Statut Membre Dernière intervention 5 mai 2010
20 nov. 2006 à 09:51
Chapeau pour cette source, et chapeau aussi au programmeur que tu es qui fait une documentation pour toutes ses sources !! 9/10
cs_geus91 Messages postés 13 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 7 novembre 2006
7 nov. 2006 à 01:09
Lors d'une déclaration de doctype XHTML x.x
Il faut modifier la librairie.
Les lignes qui décrivent les styles du menu ont des valeurs sans unités.
document.getElementById("menu_contextuel_div").style.top = this.mouse_y;
il faut rajouter >>> +'px';

Ex:
document.getElementById("menu_contextuel_div").style.top = this.mouse_y+'px';
arnolem Messages postés 79 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 8 juillet 2011
6 nov. 2006 à 14:55
merci beaucoup.

Si vous voulez mettre un peu de transparence dans votre ombre, il suffit de rajouter :

'opacity: 0.5;'+ 'filter:Alpha(opacity=50);'+ '-moz-opacity : 0.5;'+

Dans le fichier JS dans les propriétés de this.shadow_style.

Vous pouvez faire de même pour le this.menu_style si vous voulez un menu transparent.
a+
cs_geus91 Messages postés 13 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 7 novembre 2006
6 nov. 2006 à 14:00
Ne fonctionne pas avec une doctype strict 1.0 :'(
Comment faire?
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
20 oct. 2006 à 18:14
Bonjour à tous.

Donc à la suite de plusieurs demandes à ce sujet j'ai donc mis à jour la source afin que de vous donner un exemple pour afficher un menu différent sur des divs...

Notez bien les différences comme par exemple le RETURN dans les fonctions de création de menu afin d'obtenir l'objet menu ( utile que pour afficher un menu différent sur des divs )

Et regardez la source de l'exemple pour comprendre comment faire ... ( car c'est un peu bizarre je l'avoue mais c'était le seul moyen de faire sans tout remanipuler ma classe )

Voila bonne prog a tous et n'hésitez pas si vous avez des problèmes

--The Rubik's Man--
cs_jojolapine Messages postés 2 Date d'inscription dimanche 10 septembre 2006 Statut Membre Dernière intervention 25 février 2007
20 oct. 2006 à 13:10
Bonjour et merci pour ce code!
j'aurai juste une question, je souhaite activer un menu lorsque je suis au dessus d'un div et le désactiver lorsque j'en sort...
j'ai donc fait un onmouseover pour l'activer, ça fonctionne, mais je ne sais pas comment "killer" le menu contextuel sur un onmouseout...?
j'ai bien vu qu'il y avait une fonction close dans le .js, mais j'arrive pas à faire marcher ...
merci d'avance!
arnolem Messages postés 79 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 8 juillet 2011
16 oct. 2006 à 09:32
le soucis que j'ai c'est que la fonction ce charge mais le clic droit ne fonctionne que en dehors du lien. sur FireFox en tout cas
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
15 oct. 2006 à 23:55
Ah ok...

Ben bizarre car sur un onmouseover si la fonction se lance le menu doit pouvoir se charger!!! Enfin je vais tester ca et je te tiens au courant

-- The Rubik's Man --
arnolem Messages postés 79 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 8 juillet 2011
13 oct. 2006 à 20:30
merci mais ce n'est pas de ça que je parlais, en fait se que je veux c'est avoir un menu contextuel différent selon les liens, par exemple si je fais un clic droit sur un lien j'ai un menu et si je fais un clic droit sur un autre lien, j'en ai un autre.
J'ai essayé de chargé le menu sur un onMouseOver mais je n'ai pas eu de succès.
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
13 oct. 2006 à 16:52
Salut Arnolem

Ben tout simplement tu crees une fonction permettant de creer un menu... par exemple tu gardes la fonction d'exemple 1 et tu mets dans la balise body l'appel a cette fonction lors de l'evenement onload

Pour les bleus de javascript et html...



voila
bonne prog

--The Rubik's Man--
arnolem Messages postés 79 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 8 juillet 2011
12 oct. 2006 à 11:31
petite question, comment faire pour que le menu se face directement sur le click droit sur un lien, sans a avoir a faire un clic gauche avant ?
cs_Azema Messages postés 1 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 6 octobre 2006
6 oct. 2006 à 20:51
Tres interressant, j'ai essaye rapidement et je trouve ca tres pratique.
FREMYCOMPANY Messages postés 276 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 22 décembre 2008
3 oct. 2006 à 18:29
Mettre des sous-menus est assez simple en sois, une fois qu'on a implémenté le menu de base ;)

A condition du moins que le menu soit bien pensé (et oui, c'est quand on ajoute des trucs à un code qu'on voit si il est bien fait ou non ;))
rekam Messages postés 122 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 10 mars 2011
3 oct. 2006 à 10:01
Re,
à mon sens, c'est hyper pratique d'avoir des sous-menus, même sur un clic droit. Surtout dans une optique de programme à plugin. Genre, t'as un ensemble de menu, tu rajoutes un plugin qui aurait encore 5 ou 6 menus contextuels, ben je t'assures que t'es content si t'as un 2e niveau de menu ;) !

Comme je te l'ai dit, ça me serait bien utile. Maintenant, je suis peut-être le seul... :'|

Bref, c'est toi qui décide, au final ;)

a+
rekam
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
2 oct. 2006 à 22:45
Salut Rekam

Ben en fait c'est une idée de faire des sous-menus contextuels... mais bon cela revient au meme que de creer un menu javascript a part qu'on l'affiche lors d'un clic droit.

Et contrairement aux menus contextuels purs il existe de nombreux codes sources permettant de creer des menus a plusieurs niveaux donc il faut juste modifier le code afin qu'il s'affiche a coté du curseur lors d'un clic droit.

Ce que j'ai voulu faire c'est vraiment faire un menu contextuel comme on en trouve dans beaucoup de programmes ... simple sans sous niveaux.

Voila mais si cela interesse de nombreuses personnes d'avoir des sous-niveaux alors je mettrai a jour mon module avec plaisir.
Bonne prog a tous
--The Rubik's Man--
rekam Messages postés 122 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 10 mars 2011
2 oct. 2006 à 13:18
Excellent, et vraiment simple (autant l'instanciation que le code).

Petite question : envisage-tu de gérer des "sous-menus contextuels" ? ça serait vraiment, mais alors vraiment, monstre top extra ;)

a+
Tafel
FREMYCOMPANY Messages postés 276 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 22 décembre 2008
30 sept. 2006 à 14:53
Ca j'avais vu ;)
Je parle de l'utilisation d'un effet de transparence (CSS:opacity)
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
30 sept. 2006 à 14:30
FREMY je sais pas si tu as bien regardé le code source et la documentation mais pour l'effet de profondeur qui pourrait etre moins marqué... cela est entierement personnalisable et mes exemples sont faits pour montrer aussi les extremes. voila voila tu baisses le padding de l'ombre dans l'instanciation du menu et le tour est joué

--The Rubik's Man--
FREMYCOMPANY Messages postés 276 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 22 décembre 2008
30 sept. 2006 à 11:40
Intéressant...

Peut-être que l'effet de profondeur pourrait être moins marqué, mais c'est pas si mal...

J'ai moi-même quelques projets non-finis sur les menus contextuels (faisant partie d'un projet JS-WindowForms)...

Je pense qu'une idée pourrait être aussi la possibilité de mettre une image de fond
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
29 sept. 2006 à 23:04
A vos commentaires merci !!!
Bonne prog a tous

-- The Rubik's Man --
Rejoignez-nous