Puoi partire da questo principio, il contenuto della TEXTAREA
document.getElementById("writing").value
che riprende se' stesso e ci aggiunge .... quello che i pulsanti passano alla function mark(tipo) sul termine di servizio tipo
codice:
<html>
<head><title>Text Console</title>
<script type="text/javascript">
<!--
function mark(tipo) {
document.getElementById("writing").value = document.getElementById("writing").value + tipo;
}
-->
</script>
</head>
<body bgcolor="#D0D090">
<div align="center">
<input type="button" value=" bold " onclick="mark('')">
<input type="button" value="italic" onclick="mark('');">
<input type="button" value="in red" onclick='mark("<span style=\"color: red;\"></span>");'>
<textarea id="writing" rows="12" cols="70" style="padding: 8px;"></textarea>
</div>
</body>
</html>
Fai attenzione ad usare singoli e doppi apici alternativamente: e/o ad impiegare l' escape character \
Per blocchi di codice consistenti, puoi allestire delle variabili e sugli onclick ci metti il nome della var; esempio:
var opener = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\n'+
             '<html>\n<head><title></title>\n\n</head>\n<body>';
con:
onclick="mark(opener)"
o magari anche:
onclick='mark(opener); document.getElementById("writing").focus();'
che ci fa ritrovare il "prompt" di riga.
Aver scritto opener ci da lo spunto per un'osservazione: con open invece si andrebbe ad incorrere in una reserved word del Linguaggio JavaScript.
A volte ci si imbatte ...