D'événements JavaScript fenêtre.onload pas déclenché
J'ai le code suivant dans un site web:
window.onload = resize;
window.onresize = resize;
function resize(){
heightWithoutHeader = (window.innerHeight - 85) + "px";
document.getElementById("main-table").style.height = heightWithoutHeader;
document.getElementById("navigation").style.height = heightWithoutHeader;
}
La onresize
fonctionne très bien, mais le onload
événement se déclenche jamais. Je l'ai essayé avec Firefox et Chrome et aucun des deux ne fonctionne.
Je vous remercie pour votre aide et aller pour la réputation! ;D
- Lorsque vous exécutez ce code? Est-il possible que le
onload
est en train d'être remplacée plus tard, ou est attachée après laload
événement se déclenche? - Vous avez eu raison. de la fenêtre.onload était évidemment remplacé par <body onload=...> plus tard. Poster un commentaire comme une réponse s'il vous plaît, afin que je puisse cocher comme celui de droite.
- Fait 🙂 Content que vous l'avez résolu!
Vous devez vous connecter pour publier un commentaire.
Je pense que ce qui est probablement ce qui se passe ici est que votre
window.onload
est remplacée plus tard, assurez-vous que ce n'est pas par des choses comme<body onload="">
Vous pouvez le vérifier en
alert(window.onload)
dans votre nouvelle fonction de la taille, pour voir ce qui est réellement attaché là.J'ai eu cela arrive quand j'ai ajouté de la 3e partie jQuery nous avions besoin d'un partenaire. J'aurais pu facilement converti mon archaïque de la fenêtre.onload de jQuery document de prêt. Cela dit, je voulais savoir si il y a un jour moderne, de la croix-navigateur compatible solution.
Il EST!
Sais que je sais que je peux convertir mon code pour utiliser le jQuery route. Et, je vais demander à notre partenaire de revoir leur code afin qu'ils cessent d'affecter les sites.
Source où j'ai trouvé la solution --> http://ckon.wordpress.com/2008/07/25/stop-using-windowonload-in-javascript/
Déplacer la fenêtre.onload ligne à la fin du fichier javascript ou après la période initiale de la fonction et ça marche:
Mais c'est une meilleure pratique si vous ne remplacez pas le onload de trop. Au lieu de joindre votre fonction à l'événement onload:
Qui a fonctionné pour moi et désolé pour mon anglais.
Cela fonctionne pour moi, je pense que votre problème est ailleurs:
vous pouvez tester vous-même ici:
http://jsfiddle.net/Dzpeg/2/
êtes-vous sûr que c'est le seul événement onLoad ? Peut-être un autre événement onLoad crée un conflit
Ce sera le travail lorsque vous appelez la "fenêtre.onload" à côté de la fonction resize()
Pour moi,
window.onload
ne fonctionnait pas lors de l'écrit à l'intérieur descript type="text/javascript
tag.Au lieu de cela, nécessaires pour écrire le même dans
script language="Javascript" type="text/javascript
tag et il a bien fonctionné.Si c'est vraiment dans cet ordre, il est certainement ne va pas au travail. Vous ne pouvez pas attribuer une fonction à un gestionnaire d'événements avant que la fonction elle-même est déclarée.