zemele
Messages postés119Date d'inscriptionvendredi 29 juillet 2005StatutMembreDernière intervention26 novembre 2009
-
4 avril 2008 à 09:04
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 2011
-
7 avril 2008 à 18:11
Bonjour,
Je souhaite enregistrer le contenu d'une ifame (wysiwyg) via la class ajax de prototype. Seulement les '?' et les '<' et sûrement d'autre caractère ne passent pas.
zemele
Messages postés119Date d'inscriptionvendredi 29 juillet 2005StatutMembreDernière intervention26 novembre 2009 5 avril 2008 à 00:11
Bonjour et mercie pour tes préçisions.
Mon problème était en 2 temps. Etait, car depuis j'ai fini par trouvé une solution , sûrement pas la meilleur, mais a le merite de fonctionner.
Donc :
Le pb se situait au niveau des "?", des "&" (évidemment dans l'url tout ce qui est derrière est considéré comme des varaibles) et d'autres caratères un peu plus rares. Du coup j'ai utiliser la solution :
url = escape(contenu);
Seulement cette fois ce sont les accents qui ne passaient plus alors j'ai ajouté avant la fonction suivante :
// Remplace toutes les occurences d'une chaine
function replaceAll(str, search, repl) {
while (str.indexOf(search) != -1)
str = str.replace(search, repl);
return str;
}
// Remplace les caractères accentués (+ espace)
function htmlToAccent(str) {
var spec = new Array("é", "É", "è", "È", "ê", "Ê", "ë", "Ë", "à", "À", "ù", "Ù", "ç", "Ç", " €", "§");
var norm = new Array("é", "É", "è", "È", "ê", "Ê", "ë", "Ë", "à", "À", "ù", "Ù", "ç", "Ç", "?", "§");
for (var i = 0; i < spec.length; i++)
str = replaceAll(str, norm[i], spec[i]);
return str;
}
contenu = htmlToAccent(contenu);
puis j'encode l'url :
url = escapde(url);
Le tout est envoyé à la class ajax (bon je passe).
L'idéal serait de traiter tous les accents, mais pour les principaux et les caratères spéciaux ça passe très bien.
Comme je disais, il y a sûrement meiux à faire, par exemple avec ta solution (encodeURIComponent()).
Les commentaires sont les bienvenus surtout si je suis dans l'erreur...