Me gustaría hacer una página en la cual tengo un texto NO EDITABLE y que el usuario pueda resaltar en amarillo algunas partes del texto.
Al principio lo quise hacer con un DIV pero tuve el mismo problema que tengo ahora mismo con iframe, y es que no soy capaz de poner el texto NO EDITABLE dado que eso hace que entonces no se pueda resaltar en amarillo.
Una de las soluciones que pensé que funcionaría seguro era hacerle lo siguiente a la funcion colorFondo:
function colorFondo(c){
editor.designMode='on';
var h = window.ActiveXObject?'backcolor':'hilitecolor';
editor.execCommand(h,false,c);
editor.designMode='off';
}
pues mi gozo en un pozo ya que esa solución sólo me valió para OPERA
Aquí os dejo el código entero por si alguien podría echarme una mano y hacer alguna prueba, o quizás le sirva para algún proyecto.
Código Javascript:
Ver original
<script> var editor; function $(id){ return document.getElementById(id); } function colorFondo(c){ var h = window.ActiveXObject?'backcolor':'hilitecolor'; editor.execCommand(h,false,c); } window.onload=function(){ editor=$('edit').contentDocument || $('edit').contentWindow.document; editor.designMode='on'; } function formato(f){ editor.execCommand(f, false, null); } </script> </head> <body> <form id="form1" name="form1" method="post" action=""> <iframe src="texto.html" id="edit" width="100%" height="300" style=" border:1px solid #000;" ></iframe> <input type="button" name="Submit1" value="Resaltar" onclick="colorFondo('yellow');" /> <input type="button" name="Submit2" value="Deshacer" onclick="formato('undo')" /> <input type="button" name="Submit3" value="Rehacer" onclick="formato('redo')" /> </form> <br /><br /> <input type="button" value="Ver HTML" onclick="alert(editor.body.innerHTML)"> </body> </html>
Gracias de antemano.