11550 sujets
koala64 a écrit :
Le dernier script est sans Ajax et ça fonctionne. (Sauf... peut-être... sur Safari)
Désolé pour le retard, 1 million de trucs à faire...
En fait le problème c'est qu'on ne peut pas accéder au fichier importé par une autre balise script.
Par exemple si on ajoute :
<script type="text/javascript">
oui();
</script>
juste avant la fermeture </body>, il ne trouve pas la fonction oui(), alors que testImport fonctionne très bien.
Problème de scope j'ai l'impression...
Comme te l'ont tous spécifiés, il faut laisser un minimum de millisecondes au navigateur pour ingurgiter le fichier 'test.js' avant d'éxécuter une de ses fonctions :
loadjs.htm
test.js
J'ai supprimé le supperflu et essayé en local, mais sur un serveur, il faudra prévoir plus de temps.
Modifié par chmel (18 Nov 2007 - 21:49)
loadjs.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Dyna</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function loadScript(file)
{
var e = document.createElement("script");
e.type="text/javascript";
e.src = file;
document.getElementsByTagName("head")[0].appendChild(e);
}
</script>
</head>
<body>
<script type="text/javascript">
loadScript("test.js");
setTimeout( function() {alert(v);oui()}, 10);// par exemple
</script>
</body>
</html>
test.js
var v = 'ok2';
function oui() {
alert('oui');
}
J'ai supprimé le supperflu et essayé en local, mais sur un serveur, il faudra prévoir plus de temps.

Modifié par chmel (18 Nov 2007 - 21:49)