JS externe avec l'Événement onLoad
J'ai un fichier js externe qui a une fonction qui est destiné à être exécuté APRÈS le corps du document est chargé. C'est ce que j'ai jusqu'à présent mais cela ne fonctionne pas comme il le devrait. Un peu d'aide s'il vous plaît.
Fichier JS externe
window.document.body.addEventListener('load', numOfSelects());
function numOfSelects()
{
var selects = document.getElementsByTagName('select');
alert(selects.length);
}
Le fichier HTML qui appelle ce script a un peu de sélectionner les champs. L'alerte fonctionne, mais il affiche 0. Et après l'alerte montre alors le corps peut être vu chargé. Évidemment, ce n'est pas ce que je voulais. Ce que je fais mal? Merci les gars.
J'ai aussi essayé ceci:
Ne fonctionne toujours pas. Voici mon code:
Fichier Parent
<html>
<head>
<title>File 1</title>
<script src='file1.js'></script>
</head>
<body>
<select id='dd1'><option>First</option><option>Second</option></select>
<select id='dd2'><option>First</option><option>Second</option></select>
</body>
</html>
FICHIER JS
alert('start');
window.document.body.addEventListener('load', function(){alert(document.getElementsByTagName('select').length)});
alert('stop');
seulement la première alerte montre. J'ai l'impression d'avoir fait un vraiment stupide erreur quelque part.
OriginalL'auteur Craig Wayne | 2013-07-01
Vous devez vous connecter pour publier un commentaire.
Vous voulez simplement
fenêtre.la méthode addEventListener('load', numOfSelects);
OriginalL'auteur theaceofthespade
Vous voulez
En incluant les parenthèses, vous ont fait appel de la fonction et de son passage de retour (qui n'était rien) comme deuxième argument de "addEventListener", plutôt que de référencer la fonction
Êtes-vous toujours obtenir le même résultat?
Même si le fait de changer cette ligne de code n'a pas le programme de fonctionner comme vous le souhaitez, il est encore un problème avec le code.
quand j'ai essayé ce que vous avez tapé, elle na pas compiler correctement, de sorte que tout le code après que la ligne ne fonctionne pas. Ce que je fais dans ces cas est de conclure deux alertes, c'est à dire d'alerte(1); avant de la ligne de code et d'alerte(2); après. Afin d'alerte(1) ne s'exécute pas la seconde. Cependant, je ne les essayez ceci: la fenêtre.document.corps.la méthode addEventListener('load', alert(document.getElementsByTagName('select').la longueur)); et qui retourne 0.
ajouté mon code pour l'OP.
OriginalL'auteur theaceofthespade
essayez ceci:
OriginalL'auteur Johan Nordli