begin process at 2010 02 10 17:29:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Divers

 > 

menu contextuel après clic bouton sous IE et Firefox


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

menu contextuel après clic bouton sous IE et Firefox

mercredi 11 octobre 2006 à 17:16:06 | menu contextuel après clic bouton sous IE et Firefox

obby

Bonjour,

  Je suis nouveau dans ce language mais on m'a demandé de régler un problème concernant un menu contextuel avec Firefox.

  En fait, lorsque l'on clic sur un élément dans la page web, un petit menu contextuel s'affiche. A la base, il semblerait que cela a été créé pour IE et Netscape. Le problème étant que l'on utilise de plus en plus firefox (on se demande bien pourquoi lol) et du coup la manip ne fonctionne plus alors que sous IE pas de problème.

   voila un extrait du code où il semblerai y avoir un problème :

NS4 = (document.layers);
IE4 = (document.all);
ver4 = (NS4 || IE4);
IE5 = (IE4 && ((navigator.appVersion.indexOf("5.")!=-1) || (navigator.appVersion.indexOf("6.")!=-1)) );


function makeElement(whichEl,whichWidth,whichParent,whichContainer)
{
      PrintAlert ("function makeElement");
    if (NS4)
    {
            if (whichWidth)
        {
              elWidth = whichWidth;
            }
            else
        {
              elWidth = (whichContainer) ? whichContainer.menuWidth : whichParent.menuWidth;
              if (whichContainer)
                elWidth = elWidth-(borWid*2)-(itemPad*2);
            }
            if (!whichContainer)
            whichContainer = menuLoc;
            eval(whichEl + "= new Layer(elWidth,whichContainer)");
      }
      else
    {
            if (IE5)
        {
              newDiv = menuLoc.document.createElement("DIV");
              newDiv.style.position = "absolute";
              newDiv.id = whichEl;
              menuLoc.document.body.appendChild(newDiv);
            }
            else
        {
              elStr = "<DIV ID=" + whichEl + " STYLE='position:absolute'></DIV>";
              menuLoc.document.body.insertAdjacentHTML("BeforeEnd",elStr);
            }
            if (isFrames)
            eval(whichEl + "= menuLoc." + whichEl);
      }
      return eval(whichEl);
}



La console javascript me renvoie :
Erreur : menuLoc.document.body.insertAdjacentHTML is not a function

Comment puis-je corriger ce problème?

Merci d'avance.



mercredi 11 octobre 2006 à 22:08:35 | Re : menu contextuel après clic bouton sous IE et Firefox

Arto_8000

L'erreur le dit la fonction n'est pas supportée sur Firefox. Il existe peut-être un équivalent, mais je ne crois pas qu'il y en ait un, car cette fonction n'est pas standard et est donc a évité lorsqu'on veut faire quelque chose d'accessible pour tous les navigateurs. Normalement, lorsqu'on veut faire un menu contextuel personnalisé, on utilise l'événement oncontextmenu. Une source la dessus a été posté il n'y a pas longtemps sur javascriptfr. http://www.javascriptfr.com/codes/MENU-CONTEXTUEL-PERSONNALISABLE-AVEC-CHOIX-IMAGES_39741.aspx
jeudi 12 octobre 2006 à 08:15:38 | Re : menu contextuel après clic bouton sous IE et Firefox

obby

merci je vais regarder ca de près.

Par contre, est-ce qu'il existe un endroit où sont "listées" les fonctions standard ainsi que les autres en fonction du navigateur?



jeudi 12 octobre 2006 à 14:33:05 | Re : menu contextuel après clic bouton sous IE et Firefox

obby

Bien ca marche presque,

      Le problème c'est que je ne veut afficher mon menu popup perso uniquement quand je clic "gauche" sur un bouton.

     Dans les autres cas, c'est le popup standard du navigateur qui doit s'afficher.

jeudi 12 octobre 2006 à 23:46:23 | Re : menu contextuel après clic bouton sous IE et Firefox

Arto_8000

Si tu veux que le menu perso s'affiche uniquement sur une zone ou un bouton. Au lieu de mettre l'événement dans la balise body, tu peux le mettre dans une balise input. Exemple : Dans le code tu vois quelque chose dans le genre : Et bien si tu as envie que ça s'applique que pour un input : Et tu enlèves le oncontextmenu dans la balise body.


Cette discussion est classée dans : problème, document, whichcontainer, whichel, menuloc


Répondre à ce message

Sujets en rapport avec ce message

Problème d'insertion d'un script via <script scr= .... > [ par akrame ] Bonjour a tous , voici mon problèmesur mon site je veux faire un service de chat pour webmastersles webmasters après s'être enregistré devront insérer Problème avec document.body.clientHeight [ par Sb01 ] Salut à tous,J'aimerai positionner un calque dans ma page en fonction de la résolution de l'écran. Pour la largeur j'utilise la propriété document.bod Problème lecture scriptes [ par olimax74 ] Bonjour à tous.J'ai un problème avec plusieurs scripte que j'ai téléchargés de ce site.Ces scriptes, copiés sur une page html, fonctionnes trés bien m GetElementById Problème... [ par Thundrax ] Pour ne pas reprendre mon ancien post (dsl de la pollution),J'ai donc un script (gentillement trouvé par bultez) qui modifie le style du bouton d'un problème avec un formulaire [ par birbidouille ] Salut,je suis tout newbie en javascript et je rencontre mes premiers problèmes inexplicables:j'ai un formulairre comportant 2 menus déroulants et un b Problème de streaming [ par supersalley ] Bonjour à tous, j'ai trouvé un script de streaming que je n'arrive à faire marcher que partiellement. Je m'explique:J'ai mis ce code dans le head:func problème de syntaxe [ par psychatricmeuh ] bonjour!   je cherche à récupérer quelle radiobutton est cochée dans mon radiobuttonlist qui est sur une page aspx. j'ai essayé diverses écritures, problème de variables + Au SeCoUrS ! [ par emmanuel9 ] Bonjour à tous, le probème en faite c'est que je voudrais passer une variable javascript vers du php alors j'ai penser remplir une zone de texte caché Problème fichier .txt [ par krovomite ] Bonjour, J'ai un problème concernant un .txt, voilà mon code : function saveAs() {     var textarea = document.form.production.value;     var pop = Problème fichier .txt [ par krovomite ] Bonjour, J'ai un problème concernant un .txt, voilà mon code : function saveAs() {     var textarea = document.form.production.value;     var pop =


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,357 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales