Domcontentloaded , $(document).ready

Contenu du snippet

petite fonction cross-browser permettant l'évenement DOMContentLoaded .
Cette événement ressemble au load de windows (window.onload) , met contrairement à ce dernier, l'appel du callback se fait sans attendre le chargement des images et feuilles de styles, pour des gros site avec plusieurs secondes d'attente au chargement, cette fonction est très intéressante ...

note : cette fonction n'est pas de moi, enfin je l'ai juste adapté... elle est présente dans la plupart des librairies, mais pour celui qui en utilise pas, et bien la voilà !!!

Source / Exemple :


function $ready(handler){
   if (document.addEventListener) {
      if (navigator.userAgent.indexOf('AppleWebKit/') > -1 || window.opera){
         var timer = window.setInterval(function() {
            if (/loaded|complete/.test(document.readyState)){
                window.clearInterval(timer);
                handler();
            }
          }, 30);
      }else document.addEventListener('DOMContentLoaded', handler, false);
   }else{
      var tempNode = document.createElement('document:ready');
      (function(){
        try {  
          if(document.readyState != 'complete') 
            return setTimeout(arguments.callee, 30); 
          tempNode.doScroll('left'); 
          tempNode = null;
          handler(); 
        }catch (e){ 
          setTimeout(arguments.callee, 30); 
        }   
      })()
   }
}

/*
  maintenant vous n'avez plus qu'a faire dans le head de votre doc:
  $ready(function(){
     ...
  });

  • /

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.