2011-06-22 4 views
2

J'utilise firefox 4.0 et quand j'utilise l'événement de charge sur l'élément de corps il se comporte étrange. J'ai essayé certaines choses et un peu de travail et d'autres pas. le premier est comme ceévénement onload sur document.body se comporte étrange

<html> 
<head> 
<script type="text/javascript"> 
var load = function(){ 
alert("body loaded");  //alert not displayed 
}; 
document.body.addEventListener("load",load,false); 
</script> 
</head> 
<body > 
</body> 
</html> 

maintenant ce travail ne marche pas maintenant j'ai essayé ce

 html> 
    <head> 
    <script type="text/javascript"> 
    var load = function(){ 
    alert("body loaded");  //alert displayed 
    }; 
    </script> 
    </head> 
    <body onload="load()"> 
    </body> 
    </html> 

cela fonctionne maintenant j'ai essayé ce

<html> 
<head> 
<script type="text/javascript"> 
var load = function(){ 
alert("body loaded");  //alert not displayed 
}; 
document.body.onload=load; 
</script> 
</head> 
<body > 
</body> 
</html> 

ce travail ne marche pas. Qu'est-ce qui ne va pas?

comme réponse à Doug D J'ai essayé

<html> 
<head> 
</head> 
<body> 
<script type="text/javascript"> 
var load = function(){ 
alert("body loaded");  //alert not displayed 
}; 
document.body.onload=load; 
</script> 
</body> 
</html> 

ce travail ne marche pas non plus ni cela fonctionne

<html> 
<head> 
</head> 
<body> 
</body> 
<script type="text/javascript"> 
var load = function(){ 
alert("body loaded");  //alert not displayed 
}; 
document.body.onload=load; 
</script> 
</html> 

dans la dernière tentative du body has finished loading et dans la seconde dernière tentative body is being loaded. mais cela ne fonctionne pas encore

+0

Il n'y a pas de 'body.onload'. Il y a cependant un gestionnaire ''. –

+0

@ McDonald McDonald: arent ces mêmes? et qu'en est-il de l'utilisation de addEventListner sur le corps? cela ne fonctionnait pas trop – lovesh

Répondre

1

Le body n'est pas accessible dans la tête tant qu'il n'a pas été chargé. Votre deuxième technique d'utilisation de l'attribut onload est correcte. Alternativement, je recommanderais d'utiliser jQuery avec

$(document).ready(function() 
{ 
    alert("body loaded"); 
}); 

Il est compatible avec tous les navigateurs. Sans jQuery, vous devrez gérer les différences d'événements DOM entre IE et les autres.

+0

Dans votre premier exemple, l'écouteur d'événement doit être ajouté au document, pas document.body. –

+0

D: Je joins l'événement de chargement au corps et non au document. Il doit donc être ajouté à document.body – lovesh

+0

Essayez document.addEventListener ("load", load, false); (mais pas sur IE) –

Questions connexes