Maison > Questions et réponses > le corps du texte
Si vous définissez une fonction qui modifie l'attribut de style d'un élément à l'aide d'une déclaration de fonction, une erreur sera signalée
Mais aucune erreur ne sera signalée sous window.onload
大家讲道理2017-07-05 11:01:56
Bébé, cela n'a rien à voir avec la fonction que tu utilises ! C'est parce que le chargement sera déclenché après le chargement du document, et vous devez signaler une erreur car le document n'a pas été chargé et l'élément n'est pas trouvé. Mettez le js sous l'élément
.PHP中文网2017-07-05 11:01:56
Cela n'a rien à voir avec la déclaration de fonction et l'anonymat, mais avec le moment de l'appel de la fonction.
Si nous le modifions comme suit, pouvons-nous toujours trouver le problème avec les fonctions anonymes ?
function change () { /* ... */ }
window.onload = change
Lorsque le premier est appelé, l'élément box n'est pas encore disponible, donc une erreur est signalée ; le second est appelé une fois le DOM prêt, afin qu'il puisse être exécuté. Vous pouvez enregistrer l'objet boîte dans la fonction de modification et voir.
扔个三星炸死你2017-07-05 11:01:56
Ce n'est pas le problème. Il faut savoir que le document est chargé de haut en bas. Vous mettez le fichier js à la fin de head
里
执行到js文件的时候,这个时候连body都还没加载,自然无法获取到box,也就无法设置css了。
你可以把js文件放到body
:
.
.
.
<script src="./x.js"></script>
</body>
De cette façon, vous n'en avez pas besoinwindow.onload
了
如果放在了head里面
就需要在js文件头部写window.onload=function(){......}