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.