IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[DOM] fonction javascript qui ne se lance pas


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Points : 57
    Points
    57
    Par défaut [DOM] fonction javascript qui ne se lance pas
    Bonsoir tout le monde,

    Voila j'utilise un script pour afficher dans une div le resultat d'une page php, le probleme c'est que quand j'ecris du javascript dans cette page, il ne s'execute pas...

    Existe t il un moyen de lancer un script ou comme il est lancé du coté serveur, javascript ne poura pas fonctionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    function envoieRequete(url,id) {
    	var xhr_object = null;
    	var position = id;
    	if(window.XMLHttpRequest) 
    		xhr_object = new XMLHttpRequest();
    	else if(window.ActiveXObject)
    		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
     
    	// On ouvre la requete vers la page désirée
    	xhr_object.open("GET", url, true);
    	xhr_object.onreadystatechange = function() {
    		if(xhr_object.readyState == 4) {
    			// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
    			document.getElementById(position).innerHTML = xhr_object.responseText;
    		}
    	}
    	// dans le cas du get
    	xhr_object.send(null);
    }
     
    // code qui ne fonctionne pas
    print("<script>alert('test');</script>");
    Merci pour votre aide

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Points : 188
    Points
    188
    Par défaut
    Coller tel quel les script ne fonctionne effectivement pas. Voici un exemple de fonction (trouvée sur le net il y a environ un an ; et dont j'ai oublié la source...) qui permet d'ajouter les scripts au dom :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    function setScripts(target){
    		var xml = target;
    		if(typeof(target) == "string"){
    			if (window.DOMParser) {
    				var parser = new DOMParser();
    				xml = parser.parseFromString(target, "text/xml");
    			} else if (window.ActiveXObject){
    				xml = new ActiveXObject("Microsoft.XMLDOM");
    				xml.async = false;
    				xml.loadXML(target);
    			} else {
    				alert('Un probleme est survenu la convertion xml.')
    			}
    		}
    		var allscript = xml.getElementsByTagName("script");
    		for(var i=0; i< allscript.length; i++){
    			code = allscript[i].nodeValue;
    				if(code ==null){
    					code = allscript[i].firstChild.nodeValue;
    				}
    				if(window.execScript){ //ie
    					return window.execScript(code);
    				} else if(navigator.userAgent.indexOf("KHTML") != -1){ //safari, konqueror..
    					var s = document.createElement("script");
    					s.type = "text/javascript";
    					s.innerHTML = code;
    					document.getElementsByTagName("head")[0].appendChild(s);
    				} else {
    					return window.eval(code);
    				}
    		}
    	}
    Il suffit de mettre cette fonction sur la page initiale puis d'y faire passer le contenu de chaque xhr_object.responseText

  3. #3
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    fais une petite recherche sur script dynamique dans ce forum

  4. #4
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Points : 57
    Points
    57
    Par défaut
    Merci pour vos reponses,

    Je vais me lancer dans les recherches.

    Pour le script le paramètre à passer "target" correspond à quoi?
    Car la je ne comprends pas tout
    Je copie le script sur ma page principal et dans ma page php lorsque je souhaite exécuter du javascript je le lance via ce script? lol

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Points : 188
    Points
    188
    Par défaut
    Pour utiliser le script que j'ai indiqué il suffit de rajouter ce script sur la page principale ; puis de l'appeler après chaque requête susceptible de contenir des scripts.

    Plus précisément il suffit d'avoir quelque chose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    xhr_object.onreadystatechange = function() {
    	if(xhr_object.readyState == 4){
    		setScripts(xhr_object.responseText);
    		//C'est cette ligne ci dessus qui compte. Elle appelle fait passer le résultat de la requête "à la moulinette" ce qui a pour effet de rajouter les <script> au DOM
     
    		...traitement classique...
    	}
    }

Discussions similaires

  1. fonction qui ne se lance pas
    Par le_voisin dans le forum Débuter
    Réponses: 3
    Dernier message: 26/01/2009, 09h50
  2. fonction javascript qui ne s'execute pas
    Par Neferet dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 20/01/2009, 17h08
  3. Fonction javascript qui n'effectue pas les actions demandées
    Par Joe-La-Boule dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 27/06/2008, 15h27
  4. fonction javascript qui marche pas
    Par iam dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/02/2008, 14h46
  5. Fonction Javascript qui ne s'exécute pas
    Par bubuche007 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 25/01/2007, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo