2009-02-20 6 views
0

J'ai écrit un script externe qui doit être lancé après que DOM soit prêt (ou après onload si c'est impossible).Puis-je supposer que DOM n'est pas encore prêt sur un script JS chargé dynamiquement?

J'utilise cette méthode pour charger le script dynamiquement depuis que je besoin de paramètres sur le script:

<script type="text/javascript"> 
document.write(unescape("%3Cscript src='mydomain.com/script.js.php?u="+encodeURIComponent(window.location.host)+"' type='text/javascript'%3E%3C/script%3E")); 
</script> 

Pour démarrer le script à l'heure que j'utilise des méthodes de navigateur croix pour fixer les événements dom prêt ou onload. Ma question: Est-ce que je peux supposer que DOM est prêt quand mon script s'exécute et exécute mon script immédiatement ou que DOM n'est pas prêt, et attache à un événement DOM ready (chargement de document OR)?

Si je ne peux pas supposer avec certitude non plus, ma question est comment puis-je savoir si DOM est déjà prêt (sur les différents navigateurs) quand mon script s'exécute? Dans ce cas, les méthodes pour démarrer le script sur les événements DOM ready ou document load ne fonctionneront pas car les événements ont déjà été déclenchés. Notes: 1. Je n'ai aucun contrôle sur les sites Web auxquels le script sera attaché. 2. Impossible d'utiliser Jquery ou une autre bibliothèque.

Répondre

2

Vous pouvez être presque sûr que dom n'est pas encore prêt.

This est une bonne référence pour que cela fonctionne comme vous le souhaitez.

Je voudrais soit:

1) Charger dynamiquement ce script, puis attacher fonction onload même d'appeler/faire tout ce que vous voulez avec que .js hors site.

2) Charger le script seulement après que DOM soit prêt.

0

Placez le script à la fin du body du document. Tout ce qui précède sera disponible lorsque votre script est appelé (parce que le navigateur devra l'avoir analysé pour voir votre balise de script, QED).

Notez que d'autres ressources (comme des images ou des images) peuvent encore être chargées à ce moment-là.

Questions connexes