OVH Cloud OVH Cloud

oncontextmenu et IE

13 réponses
Avatar
Pierre Goiffon
Comme dis dans un autre fil, j'ai mis en ligne une petite maquette de ce
à quoi je voulais arriver :
http://pgoiffon.free.fr/_temp/datagrid_20060623.html

Sur cette page, le menu contextuel normal est désactivé et remplacé
grace aux 2 lignes suivantes, exécutées en onload :

document.body.oncontextmenu = function(){return false;};
document.getElementById("TabQuestions").onmousedown = showContextualMenu;

L'élément TabQuestions est le tableau contenant la liste d'éléments.

Je voulais permettre le menu classique par un clic droit en dehors du
tableau, aussi j'ai essayé avec la ligne suivante à la place des 2
précédentes :

document.getElementById("TabQuestions").oncontextmenu = showContextualMenu;

Ca fonctionne bien sur Firefox, mais sur IE... Le menu classique
s'affiche partout, le "menu personnalisé" n'est jamais affiché.

Quid ?

10 réponses

1 2
Avatar
Florian Sinatra
*Pierre Goiffon* @ 23/06/2006 17:30 :
Comme dis dans un autre fil, j'ai mis en ligne une petite maquette de ce
à quoi je voulais arriver :
http://pgoiffon.free.fr/_temp/datagrid_20060623.html

Sur cette page, le menu contextuel normal est désactivé et remplacé


Bof... lorsqu'on paramètre FF pour qu'il n'en tienne pas compte, le
résultat est tout sauf agréable. Á ta place je m'en passerais.

Avatar
Pierre Goiffon
Florian Sinatra wrote:
http://pgoiffon.free.fr/_temp/datagrid_20060623.html

Sur cette page, le menu contextuel normal est désactivé et remplacé


Bof... lorsqu'on paramètre FF pour qu'il n'en tienne pas compte, le
résultat est tout sauf agréable. Á ta place je m'en passerais.


Oui, j'en ai tout à fait conscience, mais ce n'est pas pour un site
internet mais une application. Et justement, j'aimerai ne déclencher un
menu contextuel "personnalisé" que là où il y a besoin, afin que
l'utilisateur ait quand même accès au menu contextuel du navigateur en
cliquant ailleurs sur la page.


Avatar
Cenekemoi
Comme dis dans un autre fil, j'ai mis en ligne une petite maquette de
ce à quoi je voulais arriver :
http://pgoiffon.free.fr/_temp/datagrid_20060623.html

Sur cette page, le menu contextuel normal est désactivé et remplacé
grace aux 2 lignes suivantes, exécutées en onload :

document.body.oncontextmenu = function(){return false;};
document.getElementById("TabQuestions").onmousedown > showContextualMenu;
L'élément TabQuestions est le tableau contenant la liste d'éléments.

Je voulais permettre le menu classique par un clic droit en dehors du
tableau, aussi j'ai essayé avec la ligne suivante à la place des 2
précédentes :

document.getElementById("TabQuestions").oncontextmenu > showContextualMenu;
Ca fonctionne bien sur Firefox, mais sur IE... Le menu classique
s'affiche partout, le "menu personnalisé" n'est jamais affiché.

Quid ?


Désolé, chez moi (win XP, IE 6), tout fonctionne comme tu le désires
!...

Petite remarque : j'aurais juste ajouté un timer pour faire disparaître
le menu contextuel automatiquement sans avoir besoin de cliquer dans la
fenêtre...

--
Cordialement, Thierry ;-)

Avatar
Florian Sinatra
*Pierre Goiffon* @ 26/06/2006 09:58 :
Florian Sinatra wrote:
http://pgoiffon.free.fr/_temp/datagrid_20060623.html

Sur cette page, le menu contextuel normal est désactivé et remplacé
Bof... lorsqu'on paramètre FF pour qu'il n'en tienne pas compte, le

résultat est tout sauf agréable. Á ta place je m'en passerais.


Oui, j'en ai tout à fait conscience, mais ce n'est pas pour un site
internet mais une application. Et justement, j'aimerai ne déclencher un
menu contextuel "personnalisé" que là où il y a besoin, afin que
l'utilisateur ait quand même accès au menu contextuel du navigateur en
cliquant ailleurs sur la page.


En fait le problème c'est que mon FF est paramétré pour que les deux
menus s'ouvrent en même temps, ce qui est désagréable. Mais si tu
contrôles le client pour qu'il désactive le menu natif alors ça roule.



Avatar
Pierre Goiffon
Cenekemoi wrote:
http://pgoiffon.free.fr/_temp/datagrid_20060623.html

Sur cette page, le menu contextuel normal est désactivé et remplacé
grace aux 2 lignes suivantes, exécutées en onload :
(...)


Je voulais permettre le menu classique par un clic droit en dehors du
tableau


Désolé, chez moi (win XP, IE 6), tout fonctionne comme tu le désires !...


C'est à dire ?
Le comportement que je cherche à obtenir est celui-ci :
- clic droit dans le tableau => affichage du menu contextuel "personnalisé"
- clic droit dans la page mais en-dehors du tableau => affichage du menu
contextuel du navigateur

Sur mon IE6 sous XP, avec cette page et dans le 2eme cas, rien ne se
passe : le clic droit en-dehors du tableau n'ouvre aucun menu contextuel.

Petite remarque : j'aurais juste ajouté un timer pour faire disparaître
le menu contextuel automatiquement sans avoir besoin de cliquer dans la
fenêtre...


C'est une idée en effet... Je la retiens. Merci de la suggestion !


Avatar
Pierre Goiffon
Florian Sinatra wrote:
http://pgoiffon.free.fr/_temp/datagrid_20060623.html

Sur cette page, le menu contextuel normal est désactivé et remplacé
Bof... lorsqu'on paramètre FF pour qu'il n'en tienne pas compte, le

résultat est tout sauf agréable. Á ta place je m'en passerais.
Oui, j'en ai tout à fait conscience, mais ce n'est pas pour un site

internet mais une application.


En fait le problème c'est que mon FF est paramétré pour que les deux
menus s'ouvrent en même temps, ce qui est désagréable. Mais si tu
contrôles le client pour qu'il désactive le menu natif alors ça roule.


En fait Olivier en avait parlé dans le fil précédent
(<e6jvt0$l7l$). La valeur par défaut de l'option
de Firefox est visiblement d'autoriser de désactiver le clic droit.




Avatar
Cenekemoi
Cenekemoi wrote:
http://pgoiffon.free.fr/_temp/datagrid_20060623.html

Sur cette page, le menu contextuel normal est désactivé et remplacé
grace aux 2 lignes suivantes, exécutées en onload :
(...)


Je voulais permettre le menu classique par un clic droit en dehors
du tableau


Désolé, chez moi (win XP, IE 6), tout fonctionne comme tu le désires
!...


C'est à dire ?
Le comportement que je cherche à obtenir est celui-ci :
- clic droit dans le tableau => affichage du menu contextuel
"personnalisé" - clic droit dans la page mais en-dehors du tableau =>
affichage du
menu contextuel du navigateur

Sur mon IE6 sous XP, avec cette page et dans le 2eme cas, rien ne se
passe : le clic droit en-dehors du tableau n'ouvre aucun menu
contextuel.


OK, je rectifie quelque peu (même comportement avec IE 6 *et* FF 1.5):

- clic droit dans le tableau => affichage du menu contextuel
"personnalisé"

- clic droit dans la page mais *au-dessus* du tableau => *aucun* menu
contextuel
- clic droit dans la page mais *au-dessous* ou *à côté* du tableau =>
affichage du menu contextuel du navigateur

Etonnant, non ?...

--
Cordialement, Thierry ;-)



Avatar
Pierre Goiffon
Pierre Goiffon wrote:
http://pgoiffon.free.fr/_temp/datagrid_20060623.html

Sur cette page, le menu contextuel normal est désactivé et remplacé
grace aux 2 lignes suivantes, exécutées en onload :
(...)

Je voulais permettre le menu classique par un clic droit en dehors du
tableau


Afin que les choses soient plus claires, voilà ce qui fonctionne dans IE
et Firefox :
http://pgoiffon.free.fr/_temp/datagrid_20060623.html

La page suivante ouverte dans Firefox montre le comportement auquel
j'aimerai arriver :
http://pgoiffon.free.fr/_temp/datagrid_20060623_bis.html
Sous IE le menu contextuel du navigateur s'affiche partout :(

A noter que le script du menu contextuel a été récupéré ici :
http://blog.oli-web.com/?2006/06/04/77-menu-contextuel-javascript

Avatar
Olivier Miakinen

Cenekemoi wrote:
http://pgoiffon.free.fr/_temp/datagrid_20060623.html





OK, je rectifie quelque peu (même comportement avec IE 6 *et* FF 1.5):

- clic droit dans le tableau => affichage du menu contextuel
"personnalisé"

- clic droit dans la page mais *au-dessus* du tableau => *aucun* menu
contextuel
- clic droit dans la page mais *au-dessous* ou *à côté* du tableau =>
affichage du menu contextuel du navigateur

Etonnant, non ?...


Plus exactement, je dirais que :
1) le menu personnalisé s'affiche toujours dans le tableau, mais pas autour.
2) la désactivation du menu contextuel dans le tableau s'étend autour du
tableau :
- partout au dessus
- environ 1 ou 2 em à gauche et à droite
- environ 2 à 4 em en dessous du tableau

--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)




Avatar
Olivier Miakinen

Afin que les choses soient plus claires, voilà ce qui fonctionne dans IE
et Firefox :
http://pgoiffon.free.fr/_temp/datagrid_20060623.html


C'est celui que j'ai déjà commenté.

La page suivante ouverte dans Firefox montre le comportement auquel
j'aimerai arriver :
http://pgoiffon.free.fr/_temp/datagrid_20060623_bis.html


Euh... il ne manque pas quelque chose, là ? Que ce soit avec Mozilla,
avec Firefox, ou avec IE, j'ai le menu standard partout et le menu
personnalisé nulle part.

Je précise que j'ai désactivé mon anti-suppression-de-menu.

--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)

1 2