2010-12-04 4 views
1

j'ai le code folowing:Javascript innerHTML charge

window.document.getElementById("bufferTopic").innerHTML = "<img src='einstein/einstein.png' width='800' height='600'><script type='text/javascript' language='javascript'>alert('test');</script>" 

je l'ai dans un fichier de script. l'idée est de mettre en cache des images à l'intérieur d'un div et quand il termine exécuter un script.

mais cela ne fonctionne pas.

commentaires sur pourquoi cela ne fonctionne pas?

merci.

EDIT: le script charge bien l'image.

Répondre

0

Vous injectez du javascript dans la page après son chargement.

Il ne s'exécutera pas simplement parce qu'il est maintenant sur la page.

Vous pouvez lire à propos du modèle d'exécution javascript here.

Je ne sais pas pourquoi vous ne pouvez pas simplement écrire votre javascript après insérer l'image:

window.document.getElementById("bufferTopic").innerHTML = "<img src='einstein/einstein.png' width='800' height='600'>"; 
alert('test'); 
+0

, mais l'image ne chaced encore. innerHTML le définit. – iTEgg

+0

@iEisenhower - Rien à voir avec ça. Javascript s'exécute dans la page en séquence. Tous les scripts seraient chargés en premier, puis exécutés. Tout javascript nouvellement injecté ne serait pas ramassé. – Oded

+0

oui mon script est chargé/mis en cache lors de l'accès à la page Web. désolé un peu nouveau à cela. – iTEgg

0

Assurez-vous que votre script apparaît dans le code HTML après votre élément bufferTopic. Ou, exécutez-le en window.onLoad.

En outre, un easier way to preload images est avec javascript pur:

var image = new Image(); 
image.src = 'einstein/einstein.png';