simple, cambias el ámbito de la variable
nombre como global (fuera de la función) y preguntas si está vacia para sacar el prompt:
Código Javascript
:
Ver original<script language="javascript" type="text/javascript">
var nombre='';
function reloj(){
if(nombre==''){
nombre = prompt("Introduce tu nombre, por favor", "");
}
var f = new Date();
var a = f.getFullYear();
var m = new Array ("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
var d = new Array ("Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado");;
var h = f.getHours();
var mi = f.getMinutes();
var s = f.getSeconds();
if (h<10){h='0'+h}
if (mi<10){mi='0'+mi}
if (s<10){s='0'+s}
document.getElementById("capaNombre").innerHTML= ('<div style=font-size:25px;>' + 'Hola,' + '<div style=font-size:30px;>' + nombre.charAt(0).toUpperCase() + nombre.substring(1,99) + '</div>');
document.getElementById("capaReloj").innerHTML= ('Hoy es ' + d[f.getDay()] + ', ' + f.getDate() + ' de ' + m[f.getMonth()] + ' de ' + a + ' y son las ' + h + ':' + mi + ':' + s + '</div>');
}
setInterval("reloj()", 1000);
</script>