Elementos DOM de contenido editable
Elementos DOM de contenido editable
Andrés Fernández
29/8/2008
449
0
Enviar a un amigo
Publicar comentario
Calificar el Artículo

Firefox 3, entre sus muchas nuevas y poderosas características, ha sumado soporte para la propiedad contentEditable, que ya conocíamos de Explorer y otros navegadores.
Ya Ópera, Safari y Explorer soportaban esa funcionalidad, así que al sumarse Firefox, ya podemos crear con total tranquilidad dentro de nuestro sitio zonas completamente ditables. Asimismo, y para mantener la compatibilidad hacia atrás con Firefox 2 ó -, ofreceremos un camino alternativo en caso de que contentEditable falle. Este camino alternativo consiste en el reemplazo del elemento por un iframe con la propiedad designMode a on, que es la que normalmente se usa en los editores WYSIWYG que pululan por el mundo web, y que ya vimos en otra oportunidad.
El ejemplo es este, y este es el código utilizado:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>ejemplo</title>
<script>
window.onload=function(){
    if(
document.getElementById('pp').contentEditable){
    
//firefox 3, explorer, safari, ópera
    
document.getElementById('pp').contentEditable='true'
    
}else{//firefox 2
        
var ifr=document.createElement('iframe');
        var 
old=document.getElementById('pp');
        
ifr.id='pp';
        
ifr.frameBorder='0';
        
ifr.height='20';
        
ifr.width='100%';
        
ifr.onload=function(){
        var 
doc=ifr.contentWindow.document || ifr.contentDocument;
        
doc.body.innerHTML=old.innerHTML;
        
doc.documentElement.style.margin=doc.body.style.margin=0;
        
doc.designMode="on";
        }
        
old.parentNode.replaceChild(ifr,old);

    }
    
}
</
script>  
</head>

<body>
<div id="pp">Acá se puede escribir o modificar este texto.</div>
</body>
</html>


Creo que si mezclamos esto con AJAX, las posibilidades de mejorar la funcionalidad de gestores de contenido o CMS, por mencionar el primer uso que me viene a la mente, son excelentes.
volver
DiseñoCentell - Portfolio | Capacitación | Novedades de Diseño Gráfico y Diseño Web | Novedades de Programación Web | Contacto - Artículos de Diseño Gráfico, Diseño Web y Programación Web (FlASH, PHP, JAVASCRIPT)