Ecrire des caractères spéciaux dans un objet OPTION créé en javascript
figogo
Messages postés5Date d'inscriptionmercredi 14 février 2007StatutMembreDernière intervention20 février 2007
-
14 févr. 2007 à 18:31
figogo
Messages postés5Date d'inscriptionmercredi 14 février 2007StatutMembreDernière intervention20 février 2007
-
16 févr. 2007 à 17:41
Bonjour à tous,
Mon site internet traite de caractères chinois (http://caractereschinois.free.fr) et j'ai des problèmes à afficher ces caractères dans des objets créés automatiquement par du javascript.
Au début j'utilisais innerHTML et tout allait bien. J'ajoutais le code comprenant l'objet OPTION directement dans le html de l'objet LIST et il était interprété comme il fallait.
list.innerHTML = '<option>抠</option>';
Manque de pot, ça marche nickel avec Firefox, Safari et konqueror mais je me suis aperçu la semaine dernière que IE ne voulait rien savoir.
J'ai donc opté pour une méthode plus propre de création de mes options :
var newOption = new Option('抠', 0);
list.options[0] = newOption;
Et là rien ne va plus, tout est interprété directement comme du texte et je vois donc afficher 抠 et non le caractère lui-même( ? ).
Comment puis-je faire ?
Je suis pour l'instant en train d'opter pour une solution intermédiaire qui fonctionne avec firefox et toujours pas avec IE en faisant :
var newOption = new Option('', 0);
newOption.innserHTML = '抠';
list.options[0] = newOption;
Merci d'avance,
figogo
PS : La valeur que je veux mettre dans mon option est en réalité une longue chaîne de données avec moult &#??; à l'intérieur, j'aimerai éviter de faire du travail dessus puisque je ne veux qu'afficher du html en html, puis éventuellement le relire.
A voir également:
Ecrire des caractères spéciaux dans un objet OPTION créé en javascript
astuces_jeux
Messages postés731Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention27 mai 2010 14 févr. 2007 à 20:34
par exemple si tu veux mettre " é " dans tes pages tu mets é par exemple si tu veux écrire " Créer " tu mets " Créer " pour " ' " tu mets ´ par exemple l'envie c'est l´envie ok ???
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 14 févr. 2007 à 20:38
Ca ne serait pas plus simple d'enregistrer ton document HTML ou ton fichier JS en encodage unicode, et d'écrire directement tes caractères chinois dedans à la place des &#xxxx; incompréhensibles ?
<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
figogo
Messages postés5Date d'inscriptionmercredi 14 février 2007StatutMembreDernière intervention20 février 2007 14 févr. 2007 à 22:12
Bonjour astuces_jeux,
Merci pour ta réponse mais justement tu ne fais qu'illustrer mon problème, j'utilise bien les raccourcis &???; mais il se trouvent qu'ils ne sont pas interprétés dans le cas particulier que je décris dans mon exemple (pas interprété avec IE j'entends).
nightlord666,
j'essaie d'éviter d'utiliser les caractères chinois directement parce que l'affichage des raccourcis &???; est en général mieux géré que l'unicode vu qu'ils ne dépendent pas de l'encodage de la page (le seul problème vient du fait que je modifie le html en javascript et qu'IE ne le réinterprète pas dans ce cas précis).
Je tiens à préciser que par exemple je n'ai aucun problème à faire cette manipulation à l'intérieur d'un objet TD (objetTd.innerHTML = "&#" + unicodeValue + ";"; fonctionne avec IE, firefox et compagnie). Mon problème vient sans doute de l'imbrication d'objet (ajouter un enfant créé en javascript) ou de la méthode de création (utiliser nez) mais je ne sais pas vraiment.
Si je n'ai vraiment aucune solution je m'en remettrai à l'unicode mais je ne comprends toujours pas pourquoi ce que je fais ne serait pas permis avec IE.
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 14 févr. 2007 à 22:30
De toute façon, quand tu fait en général un site qui utilise des caractères étrangers, il est plus sage de mettre tout ce que tu a en unicode (pages HTML, scripts, ...), comme ça ça te permet de gérer plus facilement tout ça.
Et en plus c'est logiquement plus rapide à l'affichage si tout est dans le même encodage (car les &#xxxx; vont de toute façon charger les polices unicode...).
<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
Vous n’avez pas trouvé la réponse que vous recherchez ?
figogo
Messages postés5Date d'inscriptionmercredi 14 février 2007StatutMembreDernière intervention20 février 2007 16 févr. 2007 à 17:41
Mon problème vient du fait que ce que j'affiche dans les <option> a été généré en php et php ne gère pas très bien l'unicode. Du coup j'initialise mes variables js (créée à partir du php) avec du code html qui peut être compliqué.
Pour tout le reste le html est correctement interprété sauf là, et personne ne semble savoir pourquoi.