sabato 3 gennaio 2009

JAVASCRIPT - HtmlEncode

Ed eccomi che forse ho trovato (in più testato e corretto) una semplice funzione per fare l'htmlencode (funzione ASP) lato client!!! Era ora! :D

Si tratta di un piccolo script javascript che puoi inserire nelle tue pagine!

Ho testato (e modificato dove si presentavano problemi) questo script con i seguenti browser:
  • Microsoft Internet explorer 6,7
  • Mozilla Firefox 3
  • Opera
  • Apple Safari
  • Google Chrome

La funzione è la seguente:


<script type="text/javascript">
<!--
function HTMLEncode(str) {
var div = document.createElement('div');
var text = document.createTextNode(str);
div.appendChild(text);
text=div.innerHTML;
text=text.replace(/"/g,"&quot;");

// Lettere accentate -------------

text=text.replace(/à/g,"&agrave;");
text=text.replace(/è/g,"&egrave;");
text=text.replace(/é/g,"&eacute;");
text=text.replace(/ì/g,"&igrave;");
text=text.replace(/ù/g,"&ugrave;");
text=text.replace(/ò/g,"&ograve;");

//--------------------------------
//-------Fix Safari problem-------
text=text.replace(/</g,"&lt;");
text=text.replace(/>/g,"&gt;");
//--------------------------------
return text;
}
//-->
</script>

Basta richiamarla e passare come parametro il testo sul quale vogliamo fare l'encode. La funzione restituirà il testo codificato!

Per ora ho notato che non tutti i caratteri speciali sono supportati! Per esempio il simbolo dei gradi --> ° Rimane tale (sulla mia macchina, con le mie impostazioni) mentre l'htmlencode di asp lo traduce in &deg; (o &#176; a seconda delle impostazioni del server) !!!! Insomma, non si può avere tutto dalla vita ma a grandi linee così potrebbe già essere sufficiente! :D
Se qualcuno ha voglia di star li a provarli tutti può!!!

Chi dovesse riscontrare problemi è invitato a segnalarli in un commento a questo post che magari possiamo provare a fixarli! ;)

Alla prox!

Nessun commento:

Posta un commento