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 :

[AJAX] XHRConnection.js Incompatible avec Mozilla,


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Par défaut [AJAX] XHRConnection.js Incompatible avec Mozilla,
    Bonjour

    j'utilise la classe XHRConnection.js Pour écrire dans un fichier texte des valeurs entrées dans un chammps texte. ça fonctionne à merveil SOUS IE6.. Par contre je n'obtiens pas le meme résultat avec FirFox. je n'arrive pas à écrire dans le fichier texte.

    Je me demande si la classe ci-dessus n'est pas compatible..Si quelqu'un a déja testé cette classe sous Mozilla.

    Ci-dessous une partie du script que j'utilise script.

    <head>
    <script type="text/javascript" src="XHRConnection.js"></script>
    </head>
    Code javascript : 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
    <script type='text/javascript'>
    function ecrire(saisie){
     
    				var XHRt = new XHRConnection();
    			// On crée une variable pour stocker le contenu de la zone de saisie
    			XHRt.appendData("texte", document.getElementById('Saisie').value);
    			// On soumet la requête
    			// Signification des paramères:			
    			// 	+ On indique à l'objet qu'il faut appeler le fichier fwrite.php
    			// 	+ On utilise la méthode POST, adaptée l'envoi d'information
    			// 	+ On indique quelle fonction appeler lorsque l'opération a été effectuée
    			XHRt.sendAndLoad("fwrite.php", "POST");
    }
     
     
    </script>


    Merci pour Votre AIDE.
    Amicalement

  2. #2
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    Pour résoudre ton problème,ce serait bien d'avoir le code de XHRConnection.js ainsi que le message d'erreur de mozilla

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Par défaut
    bonsoir

    En fait je n ai pas eu de message d'erreur lorsque j'utilise Mozilla, sauf que je n'ai pas d ecriture dans le fichier texte crée..Normalement la classe XHRonnexion.js que j'ai telechargé sur le net , permet de ce connecter à un fichier texte..honnettement je l'ai simplement incluses et utiliser comme montré dans la documentation sauf avoir parcourues les lignes du codes de celle ci...



    Amicalement

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Par défaut
    Bonjour

    j'ai édité le contenu de la classe XHRconnexion.js dans jslint.com pour voir les erreurs possibles dans le script :
    Voici le contenu de la classe :

    Code javascript : 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
     
    // + --------------------------------------------------------------------------------------
    // + XHRConnection
    // + V1.3
    // + Thanh Nguyen, http://www.sutekidane.net
    // + 20.10.2005
    // + http://creativecommons.org/licenses/by-nc-sa/2.0/fr/deed.fr
    // + --------------------------------------------------------------------------------------
    function XHRConnection() {
     
    	// + ----------------------------------------------------------------------------------
    	var conn = false;
    	var debug = false;
    	var datas = new String();
    	var areaId = new String();
    	// Objet XML
    	var xmlObj;
    	// Type de comportement au chargement du XML
    	var xmlLoad;
     
    	// + ----------------------------------------------------------------------------------
    	try {
    		conn = new XMLHttpRequest();		
    	}
    	catch (error) {
    		if (debug) { alert('Erreur lors de la tentative de création de l\'objet \nnew XMLHttpRequest()\n\n' + error); }
    		try {
    			conn = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    		catch (error) {
    			if (debug) { alert('Erreur lors de la tentative de création de l\'objet \nnew ActiveXObject("Microsoft.XMLHTTP")\n\n' + error); }
    			try {
    				conn = new ActiveXObject("Msxml2.XMLHTTP");
    			}
    			catch (error) {
    				if (debug) { alert('Erreur lors de la tentative de création de l\'objet \nnew ActiveXObject("Msxml2.XMLHTTP")\n\n' + error); }
    				conn = false;
    			}
    		}
    	}
     
    	// + ----------------------------------------------------------------------------------
    	// + setDebugOff
    	// + Désactive l'affichage des exceptions
    	// + ----------------------------------------------------------------------------------
    	this.setDebugOff = function() {
    		debug = false;
    	};
     
    	// + ----------------------------------------------------------------------------------
    	// + setDebugOn
    	// + Active l'affichage des exceptions
    	// + ----------------------------------------------------------------------------------
    	this.setDebugOn = function() {
    		debug = true;
    	};
     
    	// + ----------------------------------------------------------------------------------
    	// + resetData
    	// + Permet de vider la pile des données
    	// + ----------------------------------------------------------------------------------
    	this.resetData = function() {
    		datas = new String();
    		datas = '';
    	};
     
    	// + ----------------------------------------------------------------------------------
    	// + appendData
    	// + Permet d'empiler des données afin de les envoyer
    	// + ----------------------------------------------------------------------------------
    	this.appendData = function(pfield, pvalue) {
    		datas += (datas.length == 0) ? pfield+ "=" + escape(pvalue) : "&" + pfield + "=" + escape(pvalue);
    	};
     
    	// + ----------------------------------------------------------------------------------
    	// + setRefreshArea
    	// + Indique quel elment identifié par id est valoris lorsque l'objet XHR reoit une réponse
    	// + ----------------------------------------------------------------------------------
    	this.setRefreshArea = function(id) {
    		areaId = id;
    	};
     
    	// + ----------------------------------------------------------------------------------
    	// + createXMLObject
    	// + Méthode permettant de créer un objet DOM, retourne la réfrence
    	// + Inspiré de: http://www.quirksmode.org/dom/importxml.html
    	// + ----------------------------------------------------------------------------------
    	this.createXMLObject = function() {
    		try {
    			 	xmlDoc = document.implementation.createDocument("", "", null);
    				xmlLoad = 'onload';
    		}
    		catch (error) {
    			try {
    				xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    				xmlLoad = 'onreadystatechange ';
    			}
    			catch (error) {
    				if (debug) { alert('Erreur lors de la tentative de création de l\'objet XML\n\n'); }
    				return false;
    			}
    		}
    		return xmlDoc;
    	}
     
    	// + ----------------------------------------------------------------------------------
    	// + Permet de définir l'objet XML qui doit être valorisé lorsque l'objet XHR reoit une réponse
    	// + ----------------------------------------------------------------------------------
    	this.setXMLObject = function(obj) {
    		if (obj == undefined) {
    				if (debug) { alert('Paramètre manquant lors de l\'appel de la méthode setXMLObject'); }
    				return false;
    		}
    		try {
    			//xmlObj = this.createXMLObject();
    			xmlObj = obj;
    		}
    		catch (error) {
    				if (debug) { alert('Erreur lors de l\'affectation de l\'objet XML dans la méthode setXMLObject'); }
    		}
    	}
     
    	// + ----------------------------------------------------------------------------------
    	// + loadXML
    	// + Charge un fichier XML
    	// + Entrées
    	// + 	xml			String		Le fichier XML à charger
    	// + ----------------------------------------------------------------------------------
    	this.loadXML = function(xml, callBack) {
    		if (!conn) return false;
    		// Chargement pour alimenter un objet DOM
    		if (xmlObj && xml) {
    			if (typeof callBack == "function") {
    				if (xmlLoad == 'onload') {
    					xmlObj.onload = function() {
    						callBack(xmlObj);
    					}
    				}
    				else {
    					xmlObj.onreadystatechange = function() {
    						if (xmlObj.readyState == 4) callBack(xmlObj)
    					}
    				}
    			}
    			xmlObj.load(xml);
    			return;
    		}		
    	}
     
    	// + ----------------------------------------------------------------------------------
    	// + sendAndLoad
    	// + Connexion à la page désirée avec envoie des données, puis mise en attente de la réponse
    	// + Entrées
    	// + 	Url			String		L'url de la page à laquelle l'objet doit se connecter
    	// + 	httpMode		String		La méthode de communication HTTP : GET, HEAD ou POST
    	// + 	callBack		Objet		Le nom de la fonction de callback
    	// + ----------------------------------------------------------------------------------
    	this.sendAndLoad = function(Url, httpMode, callBack) {
    		httpMode = httpMode.toUpperCase();
    		conn.onreadystatechange = function() {
    			if (conn.readyState == 4 && conn.status == 200) {
    				// Si une fonction de callBack a été définie
    				if (typeof callBack == "function") {
    					callBack(conn);
    					return;
    				}
    				// Si une zone destinée à récupérer le résultat a été définie
    				else if (areaId.length > 0){
    					try {
    						document.getElementById(areaId).innerHTML = conn.responseText;
    					}
    					catch(error) {
    						if (debug) { alert('Echec, ' + areaId + ' n\'est pas un objet valide'); }
    					}
    					return;
    				}
    			}
    		};
    		switch(httpMode) {
    			case "GET":
    				try {
    					Url = (datas.length > 0) ? Url + "?" + datas : Url;
    					conn.open("GET", Url);
    					conn.send(null);
    				}
    				catch(error) {
    					if (debug) { alert('Echec lors de la transaction avec ' + Url + ' via la méthode GET'); }
    					return false;
    				}
    			break;
    			case "POST":
    				try {
    					conn.open("POST", Url); 
    					conn.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    					conn.send(datas);
    				}
    				catch(error) {
    					if (debug) { alert('Echec lors de la transaction avec ' + Url + ' via la mthode POST'); }
    					return false;
    				}
    			break;
    			default :
    				return false;
    			break;
    		}
    		return true;
    	};
    	return this;
    }


    et Voici le resultat de l'édition sous jslint.com (qui permet de déceler les probables erreurs).

    Code javascript : 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    Error:
     
    Implied global: ActiveXObject 27 94, XMLHttpRequest 22, alert 25 98 110 172 186, document 89 169, escape 71, xmlDoc 89
     
    Problem at line 13 character 21: Do not use String as a constructor.
     
    var datas = new String();
     
    Problem at line 14 character 22: Do not use String as a constructor.
     
    var areaId = new String();
     
    Problem at line 29 character 16: 'error' is already defined.
     
    catch (error) {
     
    Problem at line 34 character 20: 'error' is already defined.
     
    catch (error) {
     
    Problem at line 62 character 21: Do not use String as a constructor.
     
    datas = new String();
     
    Problem at line 71 character 32: Use '===' to compare with '0'.
     
    datas += (datas.length == 0) ? pfield+ "=" + escape(pvalue) : "&" + pfield ...
     
    Problem at line 97 character 20: 'error' is already defined.
     
    catch (error) {
     
    Problem at line 103 character 6: Missing semicolon.
     
    }
     
    Problem at line 109 character 17: Use '===' to compare with 'undefined'.
     
    if (obj == undefined) {
     
    Problem at line 120 character 6: Missing semicolon.
     
    }
     
    Problem at line 129 character 20: Expected '{' and instead saw 'return'.
     
    if (!conn) return false;
     
    Problem at line 136 character 22: Missing semicolon.
     
    }
     
    Problem at line 140 character 53: Expected '{' and instead saw 'callBack'.
     
    if (xmlObj.readyState == 4) callBack(xmlObj)
     
    Problem at line 140 character 69: Missing semicolon.
     
    if (xmlObj.readyState == 4) callBack(xmlObj)
     
    Problem at line 141 character 22: Missing semicolon.
     
    }
     
    Problem at line 147 character 6: Missing semicolon.
     
    }
     
    Problem at line 196 character 23: 'error' is already defined.
     
    catch(error) {
     
    Problem at line 203 character 13: Unreachable 'break' after 'return'.
     
    break;



    Amicalement

  5. #5
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Regarde plutot dans la console d'erreur de firefox, parce que jslint dit des trucs inutiles...

    Par ailleurs, je ne saurais que te conseiller de regarder les tutos ajax pour faire ta propre fonction toi même, car ce que fait ta fonction pourrait être écrit en même pas 10 lignes...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Par défaut
    Bonsoir

    Merci DoubleU , ce serait temps de me pencher sur les Tutos Ajax...


    Amicalement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction JS qui fonctionne avec Mozilla mais pas avec IE.
    Par etiennegaloup dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2005, 13h58
  2. [W3C] aide pour html avec mozilla et netscape
    Par teambeyou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 06/09/2005, 20h30
  3. Réponses: 9
    Dernier message: 06/07/2005, 14h20
  4. ODBC Access => Type Incompatible avec un champ DATE ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 6
    Dernier message: 23/04/2005, 02h02

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