Partage
  • Partager sur Facebook
  • Partager sur Twitter

Redéfinir l'objet DOM

Pour IE :)

    24 octobre 2008 à 21:08:23

    Bonjour à tous !

    je suis en ce moment en plein bac à sable sur la manipulation des divs (au programme, un clignoteur, la gestion du scroll pour zoomer, drag & drop pour "resizer" un div, bref que du fun). Je programme le plus strictement et proprement possible (pas de onclick, que des addEventListener etc). Mais j'ai un petit problème avec IE... En effet celui-ci ne gère pas le className et le addEventListener, je voudrais savoir si je pouvais modifier ses deux fonctions pour que IE puisse les gérer sans devoir insérer des conditions partout (une fois suffit largement).

    Un peu comme on redéfini le escape() pour qu'il encode les "+".
    • Partager sur Facebook
    • Partager sur Twitter
      24 octobre 2008 à 22:10:34

      Pour rajouter un evenement dynamiquement :
      function addEvent(obj_, event_, fct_) {
      if (obj_.attachEvent)
      obj_.attachEvent("on" + event_, fct_);
      else
      obj_.addEventListener(event_, fct_, true);
      }

      Pour className, es tu sur que ca ne marche pas avec IE ?
      • Partager sur Facebook
      • Partager sur Twitter
        24 octobre 2008 à 23:02:56

        il y a aussi la librairie prototype qui peut grandement te faciliter la tâche pour tout ce qui est de la DOM et de AJAX
        • Partager sur Facebook
        • Partager sur Twitter
          25 octobre 2008 à 10:39:52

          En faite, je voudrais qu'IE comprenne la méthode addEventListener, et non créer une nouvelle fonction. Donc redéfinir l'objet element du DOM. Est-ce toujours possible ? (sinon j'avais déjà envisager ta fonction Timot). Pour className j'ai rien dit, je confonds avec getAttribute, qui d'ailleurs devrais se trouver là.
          • Partager sur Facebook
          • Partager sur Twitter
            25 octobre 2008 à 12:33:11

            Redefinir des fonctions natives, c'est possible :
            // corrige des bugs d'atlas lié à l'encoding non utf-8 et les caractères spéciaux 
            var CS_encodeURIComponent = encodeURIComponent; 
            var CS_decodeURIComponent = decodeURIComponent; 
            encodeURIComponent = function(s){ 
               s = escape(s);
               while (s.indexOf('/') >= 0)  
                  s = s.replace('/', '%2F'); 
               while (s.indexOf('+') >= 0) 
                  s = s.replace('+', '%2B');  
               return s; 
            } 
            
            decodeURIComponent = function(s){ 
               while (s.indexOf('%2B') >= 0)
                  s = s.replace('%2B', '+'); 
               while (s.indexOf('%2F') >= 0) 
                  s = s.replace('%2F', '/'); 
               return unescape(s); 
            }
            

            Mais redefinir un objet, pas sur que ca soit possible.
            • Partager sur Facebook
            • Partager sur Twitter
              25 octobre 2008 à 12:39:32

              C'est bien ce que je pensais... Merci quand même. Je vais faire la méthode que tu as cité plus tôt.
              • Partager sur Facebook
              • Partager sur Twitter

              Redéfinir l'objet DOM

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown