Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 2010
-
11 mars 2007 à 05:39
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 2010
-
17 mars 2007 à 16:50
Bon c'est probablement une des rares fois que je poses une question ici, mais j'ai quelque chose qui m'embête sérieusement.
Bon pour faire une histoire courte voici comment se présente mon problème. J'ai un include d'un script à faire à plusieurs reprises à des moments différents donc impossible de les mettre d'avance dans le header. Donc, m'est venu une idée pour le include :
La le même résultat bizarre, mais pour les deux navigateurs. Quelqu'un à la moindre idée pourquoi, le résultat est différent pour quelque chose qui est senser être plus ou moins pareil et produire le même résultat ?
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 17 mars 2007 à 16:50
Bon après plusieurs testes débogguage, j'ai fini par comprendre pourquoi les deux méthodes donnaient un résultat différent.
Avec mozilla quand on fait un include avec la méthode sans eval le code ne s'exécute pas tous à fait en même temps que si on le fait avec la méthode eval. Sans le eval le code qui gère les event finit de s'excécuter et après le code includé s'exécute. Avec un eval le code s'exécutait en plein milieu et il y avait de l'interférance avec la fonction qui gerait les event.
Sur opéra il n'y avait pas de différence, car il exécutait peu importe la méthode en plein milieu.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 11 mars 2007 à 08:49
Bonjour,
"je" ne fais "pas tout à fait" la même chose,
et ça fonctionne avec FireFox,Internet Explorer,K-Meleon,Opera.
setAttribute ne réagit pas pour tous pareillement ?
<HTML>
<HEAD>
<TITLE></TITLE>
<script type="text/javascript">
function Inclure(fichier)
{
var scr = document.createElement("script");
scr.type = "text/javascript";
scr.src = fichier;
var tet = document.getElementsByTagName("head");
tet[0].appendChild(scr);
}
</script>
</head>
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 11 mars 2007 à 18:04
La solution est peut-être intéressante, mais après quelques petits tests rapide, le résultat reste globalement le même que le premier résultat, soit Firefox ça fonctionne bien et Opéra non.
Ce que j'aimerais plus comprendre c'est en quoi les deux méthodes peuvent changer quelque chose au fonctionnement global d'un script ? Le include ce fait bien dans les deux cas, sauf que dans un je suis incapable de comprendre ce qui ce passe avec le code et l'autre tous ce passe comme il le faut.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 12 mars 2007 à 10:04
>>après quelques petits
tests rapides, le résultat reste le même
>>Firefox ça fonctionne bien et Opéra non.
avec ton script chargé dynamiquement alors, probablement.
car avec "mon" exemple, ça marche sur tous les navigateurs cités, sans soucis
enfin... chez moi.
quelque chose de particulier dans ce script chargé ?
>>en quoi les deux méthodes peuvent-elles changer quelque chose au fonctionnement d'un script ?
à priori, ça ne devrait pas changer.
( sauf setAttribute avec lequel j'ai déjà eu des problèmes, mais ça ne change pas
non plus le fonctionnement d'un script )
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 12 mars 2007 à 11:05
petite remarque, mais tu dois savoir...
le script ajouté ne sera exécutable qu'à "la fin du script courant"
( celui qui l'inclus ), d'après ce que j'ai lu.. je ne sais plus où...
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 12 mars 2007 à 20:57
le script ajouté ne sera exécutable qu'à "la fin du script courant"
( celui qui l'inclus ), d'après ce que j'ai lu.. je ne sais plus où...
C'est exactement
ce que je cherches à faire, présisement je cherches à charger des
données dynamiquement seulement lorsqu'un événement ce produit.
À priori pour la différence entre les deux résultats, je n'ai rien
changer d'autre dans le script. C'est pourquoi je suis à peu près sur
qu'un partie du problème et de la solution vient de ces quelques lignes.
Bon si tu le veux je peux t'envoyer mon projet via rapidshare ou autre si tu y tiens, mais sinon je continuer à débogguer.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 13 mars 2007 à 07:07
>>C'est exactement ce que je
cherches à faire
c'est à dire ? excécuter le script ajouté dans le scritp qui l'ajoute ?
si oui, je pense qu'il va falloir faire autrement ( d'après ce que j'ai lu !
mais rien n'est moins sûr ! )
>>je cherches à charger des données
dynamiquement
uniquement des données ?
pourquoi pas xml et xsl ?
ou tout dépend, mais avec shtml on peut aussi inclure : <!--#include file="monFicher.shtml" -->
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 13 mars 2007 à 21:57
Pour les données, il s'agit de quelque chose de plus complexe que de simple valeur comme des fonctions javascript qui vont parle la suite être appeller pour charger d'autres choses.
Pour le problème en lui-même, il reste le même, mais après quelques tests de débogguage je me suis rendu compte que quand le script fonctionnait comme je voulais sur Firefox, il y avait quand même quelques choses qui clochait dans le fonctionnement, alors je supposes que le problème est plus complexe et qu'il implique d'autres parties du code.
Étant donné que le code est assez complexe en sois et que je n'ai peut-être pas cibler le problème dans son entier, il préférable que je continues le débogguage moi-même. Pour le projet il s'agit d'un petit jeu à la Zelda, fait en javascript avec les canvas pour l'affichage. Si vous tenez à y jeter un coup d'oeil voici un lien pour le télécharger :