Envoyé par : efdur
Date : 29/12/2006 14:32
Bonjour,
Si ma textbox contiens (bonjour en RUSSE) lorsque j'enregistre j'obtiens "74@02AB2C9B5!"
Ma fonction qui enregistre:(result1 la textbox)
function saveSeturl() { var url = document.getElementById("result").value; { var prefs = { url1: url }; enregistrerPrefs("extensions.bzm.",prefs); } var titre = document.getElementById("result1").value; { var prefs = { titre1: titre}; alert('prefs : ' + titre); enregistrerPrefs("extensions.bzm.",prefs); } }
Mon alerte me renvois bien le contenu de la textebox et je me retrouve avec un 74@02AB2C9B5! dans mes préférences :( Quelqu'un a une idée ,c'est un problème d'utf-8?
Envoyé par : thefab
Date : 30/12/2006 18:50
Quelqu'un a une idée ,c'est un problème d'utf-8?
Je suppose que oui, les préférences sont certainement enregistrées en iso-8859-1. Ca me fait la même chose avec les chemins de fichiers avec des accents.
Envoyé par : efdur
Date : 31/12/2006 10:50
Merci thefab, y a t'il un autre moyen de sauvegarder ce titre, ça pourrais peut être ce faire dans un fichier .txt ?
Envoyé par : thefab
Date : 08/01/2007 15:04
Si tu veux l'enregistrer toi-même dans un fichier tu dois le faire à la main: http://developer.mozilla.org/fr/docs/Ext(..) et http://developer.mozilla.org/en/docs/Wri(..)
Envoyé par : efdur
Date : 08/01/2007 21:07
Finalement c'est possible d'au moins deux façons:(mais merci :) je vais quand méme aller voir tes liens)
{ prefs = GetPreftitre1(); document.getElementById("result1").value = unescape(prefs.titre1); } var titre = escape(document.getElementById("result1").value); { var prefs = { titre1: titre }; enregistrerPrefs("extensions.bzm.",prefs); }
// JavaScript Document function enregistrerPrefs(monapli, pPrefs, bUnicode) { var service = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefService) .getBranch(monapli); try { var oPLS = Components.classes["@mozilla.org/pref-localizedstring;1"].createInstance(Components.interfaces.nsIPrefLocalizedString); var sType = ""; for(p in pPrefs) { sType = typeof(pPrefs[p]); if (bUnicode) sType = "unicode"; switch (sType) { case "string": service.setCharPref(p, pPrefs[p]); break; case"number": service.setIntPref(p, pPrefs[p]); break; case "boolean": service.setBoolPref(p, pPrefs[p]); break; case "unicode": oPLS.data = pPrefs[p]; service.setComplexValue(p, Components.interfaces.nsIPrefLocalizedString, oPLS); break; } } } catch(e) { alert("erreur" + e); } } function chargerPrefs(monapli, prefs, bUnicode) { var service = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefService) .getBranch(monapli); var branche = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefBranch); try { var sType = ""; for(p in prefs) { iType = service.getPrefType(p); if (bUnicode) iType = branche.PREF_UNICODE; switch (iType) { case branche.PREF_STRING: //32 prefs[p] = service.getCharPref(p); break; case branche.PREF_INT: //64 prefs[p] = service.getIntPref(p); break; case branche.PREF_BOOL: //128 prefs[p] = service.getBoolPref(p); break; case branche.PREF_UNICODE://256 try {prefs[p] = service.getComplexValue(p, Components.interfaces.nsIPrefLocalizedString).data;} catch (e) {prefs[p] = service.getCharPref(p);} break; } } } catch(e) { alert(e); } return prefs; }
Et dans les prefs a enregistrer en unicode je rajoute "true" dans la fonction comme cela:
var titre = document.getElementById("result1").value; { var prefs = { titre1: titre}; enregistrerPrefs("extensions.bzm.",prefs,"true"); }
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.