2011-05-20 2 views
0

je le script suivant pour contrôler tout élément avec une pièce d'identité, dans ce cas, il est un div avec un id « wrapper »:Javascript pour la hauteur Div, rendre plus rapide

 
window.onload = window.onresize = function ResizeIFrame() { 
       var div = document.getElementById("wrapper"); 
       var myWidth = 0, myHeight = 0; 

       if (typeof (window.innerWidth) == 'number') { 
        //Non-IE 
        myWidth = window.innerWidth ; 
        myHeight = window.innerHeight - 90; 

       } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { 
        //IE 6+ in 'standards compliant mode' 
        myWidth = document.documentElement.clientWidth ; 
        myHeight = document.documentElement.clientHeight - 90 ; 
       } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { 
        //IE 4 compatible 
        myWidth = document.body.clientWidth; 
        myHeight = document.body.clientHeight - 90; 
       } 
       div.style.width = myWidth + 'px'; 
       div.style.height = myHeight + 'px'; 
      } 



Dans ce web, vous pouvez voir comment cela fonctionne: http://www.jmquintela.cl/?page_id=145 le problème est que le script attend que la page soit entièrement chargée pour exécuter la fonction et redimensionner la fenêtre, ou attend jusqu'à ce que l'utilisateur redimensionne manuellement la fenêtre. Mais le chargement de la page peut prendre trop de temps et je veux que le script s'exécute avant que la fenêtre ne soit complètement chargée pour que les utilisateurs puissent naviguer à mi-temps. J'essaie d'appeler la fonction comme celui-ci, mais ne fonctionne pas:

 

    ResizeIFrame() 
    

aide s'il vous plaît! salut!

Répondre

0

Essayez ceci:

function ResizeIFrame() { 
      var div = document.getElementById("wrapper"); 
      var myWidth = 0, myHeight = 0; 

      if (typeof (window.innerWidth) == 'number') { 
       //Non-IE 
       myWidth = window.innerWidth ; 
       myHeight = window.innerHeight - 90; 

      } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { 
       //IE 6+ in 'standards compliant mode' 
       myWidth = document.documentElement.clientWidth ; 
       myHeight = document.documentElement.clientHeight - 90 ; 
      } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { 
       //IE 4 compatible 
       myWidth = document.body.clientWidth; 
       myHeight = document.body.clientHeight - 90; 
      } 
      div.style.width = myWidth + 'px'; 
      div.style.height = myHeight + 'px'; 
     } 

window.onload = window.onresize = ResizeIFrame; 

//Then you can just do: 
ResizeIFrame(); //whenever you desire 
+0

super, merci !, j'ajoute window.onmouseover, window.onmouseclick et un callfunction-time-trigger pendant qu'il attend le window.onload – JMKintela

1

window.onload ne se déclenche pas jusqu'à ce que toutes les images et les iframes ont terminé le chargement, ce qui explique pourquoi toutes les grandes bibliothèques JS tentent d'identifier quand le DOM est prêt à manipuler, qui arrive souvent beaucoup plus tôt. Si vous n'utilisez pas/ne voulez pas utiliser une de ces librairies, il y a un assistant DOM très léger et compatible avec plusieurs navigateurs ici: https://github.com/ded/domready#readme

+0

Je n'ai pas entendu parler de DOM, je dois étudier plus .. merci! – JMKintela

Questions connexes