2009-12-27 3 views
0

j'ai appris que vous pouvez vous inscrire corps onload comme ceci:comment enregistrer un élément onload lorsque l'élément n'est pas chargé?

window.addEventListener('load', function, capture); // or attachEvent for ie; capture is true or false 

donc j'ai essayé d'enregistrer un onload élément comme celui-ci:

document.getElementById(eleid).addEventListener('load', function, capture); 

mais ça me fait erreur, dit « ne peut pas appelez la méthode addeventlistener de null "ou quelque chose comme ça.
Je pense que c'est parce que document.getElementById (eleid) n'existe pas encore lors de l'enregistrement. mais je dois l'enregistrer avant le chargement de l'élément, à quoi sert d'enregistrer une fonction onload quand l'élément est déjà chargé? la fonction ne sera jamais appelée. Donc la question est de savoir comment puis-je enregistrer une fonction de chargement d'élément alors?

Mise à jour:

grâce à NSD, Pekka et pygorex1, je sais maintenant que je ne peux pas enregistrer événement onload pour d'autres éléments que le corps et l'image

la question est maintenant, est il y a un travail autour?

fondamentalement, ce que je veux faire est de montrer une div seulement si une image est chargée. onload fonctionne pour les images, donc ce n'est pas un problème. Mais parfois l'image est mise en cache et chargée avant la div, et quand la fonction essaie de montrer la div, elle ne peut pas la trouver. Dans ce cas, je veux que la div se montre dès qu'elle apparaît.

toute aide serait appréciée

+2

Pourquoi cela est-il signalé comme offensant? –

+0

Parce que mon nom était offensant, je pense. quelqu'un a changé mon nom, ce n'est plus offensant. Les gens sont si sensibles sur les noms d'écran ces jours-ci. – BigName

Répondre

1

La réponse courte est: vous le faites mal.

Quand le navigateur déclenchera-t-il un événement théorique onload lorsqu'il rencontrera un tag <div>? Quand est-il rendu à l'écran? Lorsque l'élément est analysé dans l'arborescence DOM? Si, pour une raison quelconque, vous devez détecter quand un élément apparaît (peut-être que vous chargez le code HTML via AJAX et l'injectez dans le DOM), vous pouvez définir un temporisateur pour rechercher l'élément via getElementById() puis faire quelque chose avec ça. Ou, mieux encore, recherchez l'élément après qu'il a été chargé dynamiquement.

+0

que voulez-vous dire par la recherche de l'élément après qu'il a été chargé? pouvez-vous fournir un exemple de code? merci, je suis nouveau à javascript, en fait, je suis nouveau pour les scripts. – BigName

3

Il n'y a pas de gestionnaire onload pour les éléments, seulement pour le corps et pour les balises d'image (pour laquelle le onload est déclenché lorsque la source d'image est chargée, pas l'élément DOM lui-même).

+0

merci, il est bon de savoir – BigName

Questions connexes