la verdad, no me gusta la idea pero aqui un ejemplo, solo que un par de criterios que tienes que tener en cuenta.
- aunque se codifica el contenido eso no significa que otros no puedan leer el mensaje original. simplemente inhabilitando javascript podemos ver el mensaje. por lo que supongo que primero tendras que codificar el documento antes de que llegue al cliente. lo puedes hacer con lenguaje servidor o manualmente creas el documento ya codificado. por supuesto, este ultimo no se tolera mucho porque es mas dificil el mantenimiento.
- a mi parecer, el criterio mas importante. si en el documento original, tambien aparecen numeros, estos podran ser confundidos al momento de decifrar el contenido. se puede corregir pero de momento no tengo buen animo para pensar un buen algoritmo. basicamente lo que haria es escapar los numeros con un backslash cuando se codifique. y para decifrar, determinar si el numero es escapado para tomar la desicion si hay que cambiar su valor o simplemente remover el backslash.
Código:
walk=function(filter){
var array = [];
for(var node = this.firstChild; node; node = node.nextSibling){
if(!filter)array.push(node);
else if(filter(node))array.push(node);
if(node.firstChild)array = array.concat(arguments.callee.call(node, filter));
}
return array;
}
function encode(text, value){
if(text.length != value.length)return;
var map = {};
for(var i = 0; i < text.length; i++)map[text[i]] = value[i];
return map;
}
onload = function(){
charset = encode("murcielago", "1234567890");
walk.call(document.body, function(node){
if(node.nodeType != 3)return;
node.nodeValue = node.nodeValue.replace(/\w/g, function(m){
if(charset[m])return charset[m];
return m;
})
})
}
el codigo esta listo para simplemente copiarlo, pegarlo, y comprobarlo en el documento. pero ojo, aun te falta el decifrador que es bastante facil obtenerlo si estudias detenidamente la funcion
encode y la expresion regular en
replace.