Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Prototype & Script.aculo.us
Prototype & Script.aculo.us Forum d'entraide sur les frameworks Prototype et Script.aculo.us
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/02/2008, 08h26   #1
Futur Membre du Club
 
Inscription : octobre 2007
Messages : 68
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 68
Points : 15
Points : 15
Par défaut [Prototype] xmlhttrequest & les scripts JS

Bonjour à tous,

Je commence à comprendre le fonctionnement de xmlhttprequest, mais subsiste le problème de l'exécution des script javascript lors du chargement la requête, puisque la fonction ne charge que du texte (comme tj me direz-vous!).

Mon pb :

Je charge une portion de page via ajax, les scripts JS inclus dans la page ne s'exécute pas ? pourquoi.

J'ai deux sortes de scripts :
• Des scripts classiques
• Des fonctions appelées, chargées dans l'entête de la page principale.

Que faire ?
des idées ?
D'avance merci
bronon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 16h32   #2
Rédacteur/Modérateur
 
Avatar de marcha
 
Homme Marc Chappuis
Développeur Web
Inscription : décembre 2003
Messages : 1 535
Détails du profil
Informations personnelles :
Nom : Homme Marc Chappuis
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2003
Messages : 1 535
Points : 2 206
Points : 2 206
Salut,

les scripts doivent être évalués. Regarde du coté de la fonction eval
en javascript, ou inspire-toi de evalScripts() de l'objet String de la
librairie prototype ou encore l'option Ajax evalJS de cette même librairie.
__________________
Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !
marcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 22h15   #3
Futur Membre du Club
 
Inscription : octobre 2007
Messages : 68
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 68
Points : 15
Points : 15
Citation:
Envoyé par marcha Voir le message
Salut,

les scripts doivent être évalués. Regarde du coté de la fonction eval
en javascript, ou inspire-toi de evalScripts() de l'objet String de la
librairie prototype ou encore l'option Ajax evalJS de cette même librairie.
Merci pour toutes ces info.
Je viens de regarder eval, ça m'apparaît intéressant, dès que j'ai 1/2 minute je me penche sur Ajax

Cordialement
bronon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 17h24   #4
Futur Membre du Club
 
Inscription : octobre 2007
Messages : 68
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 68
Points : 15
Points : 15
Bonsoir à tous,

J'ai encore beaucoup de mal à comprendre ce que je fais en Ajax.

J'ai regardé sur les conseils de Marcha eval, evalJS ou evalScripts.

Rien ni fait je copie/colle sans vraiment de cohérence et surtout sans comprendre la mécanique, la démarche je la comprends : attendre que le chargement soit finalisé (complited) puis exécuter les scripts qui sont soit dans la portion chargée soit dans la page ppale.

Maintenant comment mettre ceci en musique ?
Les bouts de script trouvés à droite ou à gauche ne donnent rien !

une âme charitable pour m'expliquer ?

Je veux exécuter le script suivant en fin de chargement

Code :
1
2
3
4
5
6
7
8
...
<script language="JavaScript1.2" type="text/javascript">
/*	alert("Script pied de page");*/
	document.getElementById('Chapitre1').style.display='block';
	document.getElementById('Chapitre2').style.display='none';
	document.getElementById('Chapitre3').style.display='none';
	window.eval();
</script>
D'avance merci

Pas d'âme charitable ....
bronon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 13h53   #5
Futur Membre du Club
 
Inscription : octobre 2007
Messages : 68
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 68
Points : 15
Points : 15
Citation:
Envoyé par bronon Voir le message
Bonsoir à tous,

J'ai encore beaucoup de mal à comprendre ce que je fais en Ajax.

J'ai regardé sur les conseils de Marcha eval, evalJS ou evalScripts.

Rien ni fait je copie/colle sans vraiment de cohérence et surtout sans comprendre la mécanique, la démarche je la comprends : attendre que le chargement soit finalisé (complited) puis exécuter les scripts qui sont soit dans la portion chargée soit dans la page ppale.

Maintenant comment mettre ceci en musique ?
Les bouts de script trouvés à droite ou à gauche ne donnent rien !

une âme charitable pour m'expliquer ?

Je veux exécuter le script suivant en fin de chargement

Code :
1
2
3
4
5
6
7
8
...
<script language="JavaScript1.2" type="text/javascript">
/*	alert("Script pied de page");*/
	document.getElementById('Chapitre1').style.display='block';
	document.getElementById('Chapitre2').style.display='none';
	document.getElementById('Chapitre3').style.display='none';
	window.eval();
</script>
D'avance merci

Pas d'âme charitable ....
Je reviens vers vous,

Je pensais voir résolu le problème, mais que neni !

Après une grosse séance de surfe sur mon ami Google, mon pb reste entier.

Que faire pour exécuter des JS lors du rechergement d'une page via Ajax ?

D'avance merci
bronon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 14h16   #6
Modérateur
 
Avatar de DoubleU
 
Inscription : janvier 2006
Messages : 1 107
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 107
Points : 1 118
Points : 1 118
En fait, tu utilises mal la fonction eval j'ai l'impression.

Si par exemple, tu as la chaine de caractère suivante:

Code :
var x = "alert('coucou')";
tu peux appliquer la fonction eval qui va interpréter ce que tu lui passes en argument.

Code :
eval (x) // va produire un alert avec coucou comme texte
Dans ton cas, l'utilisation ressemblerait à ca:
Code :
1
2
3
	eval("document.getElementById('Chapitre1').style.display='block'")
	eval("document.getElementById('Chapitre2').style.display='none'")
	eval("document.getElementById('Chapitre3').style.display='none'")
Faut aussi savoir que la fonction eval est relativement lente a exécuter, donc elle est a manier avec parcimonie.
DoubleU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 20h24   #7
Futur Membre du Club
 
Inscription : octobre 2007
Messages : 68
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 68
Points : 15
Points : 15
Citation:
Envoyé par DoubleU Voir le message
En fait, tu utilises mal la fonction eval j'ai l'impression.

Si par exemple, tu as la chaine de caractère suivante:

Code :
var x = "alert('coucou')";
tu peux appliquer la fonction eval qui va interpréter ce que tu lui passes en argument.

Code :
eval (x) // va produire un alert avec coucou comme texte
Dans ton cas, l'utilisation ressemblerait à ca:
Code :
1
2
3
	eval("document.getElementById('Chapitre1').style.display='block'")
	eval("document.getElementById('Chapitre2').style.display='none'")
	eval("document.getElementById('Chapitre3').style.display='none'")
Faut aussi savoir que la fonction eval est relativement lente a exécuter, donc elle est a manier avec parcimonie.
Merci pour ton aide, mais ça ne marche pas, ni alert ni "eval("document.getElementById('Chapitre2').style.display='none'")" ...
bronon est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h08.


 
 
 
 
Partenaires

Hébergement Web