Bonjour,

J'ai trouvé un script permettant de personnaliser le menu contextuel lors d'un clic droit de la souris.

Il me semble bien, mais je voudrais l'adapter pour qu'il détecte l'élément sur le quel on clique...

Voici le script que j'ai recupere

dans la partie <head>:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
 
 <script language="JavaScript">
function affiche_menu() {
 
// Détection de la position du clic (distance au bords droit et bas)
var droite = document.body.clientWidth - event.clientX;
var bas = document.body.clientHeight - event.clientY;
 
// Si il n'y a pas la place à droite pour placer le menu
if ( droite < menu.offsetWidth ) {
 
// On place le menu à gauche de la souris
menu.style.left = document.body.scrollLeft + event.clientX - menu.offsetWidth;
}
 
// Sinon, on le place à droite de la souris
else {
menu.style.left = document.body.scrollLeft + event.clientX;
}
 
// Pareil vis-à-vis du bas de l'ecran
if ( bas < menu.offsetHeight ) {
menu.style.top = document.body.scrollTop + event.clientY - menu.offsetHeight;
}
else {
menu.style.top = document.body.scrollTop + event.clientY;
}
 
// Affichage proprement dit du menu
menu.style.visibility = "visible";
return false;
}
 
 
// Masquage du menu
function masque_menu() {
menu.style.visibility = "hidden";
}
 
 
// Surlignage des intitulés (position 'on')
function surlignage() {
if ( event.srcElement.className == "intitules" ) {
event.srcElement.style.backgroundColor = "highlight";
event.srcElement.style.color = "white";
}
}
 
 
// Remise à l'état normal des intitulés (position 'off')
function normal() {
if ( event.srcElement.className == "intitules" ) {
event.srcElement.style.backgroundColor = "";
event.srcElement.style.color = "black";
}
}
 
 
// Chargement des liens
function aller() {
if ( event.srcElement.className == "intitules" ) {
 
// Vérification de la fenêtre cible pour le lien (nouvelle fenêtre...)
if ( event.srcElement.getAttribute("target") != null ) {
window.open(event.srcElement.url,event.srcElement.getAttribute("target"));
}
else {
window.location = event.srcElement.url;
}
}
}
</script>
 
<style>
.fond {
position: absolute;
width: 200px;
visibility: hidden;
border: 2px;
border-bottom-style : inset;
border-right-style : inset;
border-left-style : outset;
border-top-style : outset;
background-color: menu;
font-family: Tahoma;
line-height: 20px;
font-size: 13px;
}
 
.intitules { padding-left: 15px; padding-right: 10px; }
</style>
dans la partie <body>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 <!-- Placez de préférence ceci au début de votre page -->
<div id="menu" class="fond" onmouseover="surlignage()" onmouseout="normal()" onclick="aller()">
<div class="intitules" url="javascript:history.go(-1)">Précédent</div>
<div class="intitules" url="javascript:history.go(1)">Suivant</div>
<div class="intitules" url="javascript:history.go(0)">Actualiser</div>
<div class="intitules" url="javascript:window.print()">Imprimer</div>
<hr>
<div class="intitules" url="http://www.biblioscript.com/">Biblioscript</div>
</div>
 
<script language="javascript">
<!-- Lancement de la détection des clics uniquement pour Internet Explorer -->
if ( document.all) {
 
// Sur clic-droit, affichage
document.oncontextmenu = affiche_menu;
 
// Sur clic gauche, masquage
document.body.onclick = masque_menu;
}
</script>
En fait ca s'applique à n'importe quel endroit du body.
Hors dans mon code, j'ai plusieurs div dans mon body, et je voudrais agir sur le div où on a cliqué...
Comment faire pour que ce script permette par exemple de modifer le background du div où on a cliqué?