Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : menu contextuel après clic bouton sous IE et Firefox [ JavaScript Orienté objet (POO) / Divers ] (obby)

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é 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...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.