Cita: Es decir, si un clearTimeout dentro de un setTimeout es una sentencia válida.
si, es perfectamente valido. dentro de setTimout puedes ejecutar la sentencia que quieras.
Cita: Sé que suena sencillo pero por lo que veo JS se salta los setTimeout y ejecuta otras sentencias hasta que se cumple el tiempo, o es cosa mía...
da la sensacion que se salta el codigo, pero mas bien es que esta programado para ejecutar el codigo pasados los milisegundos. ahora bien, setTimout ni setInterval detienen el proceso de ejecucion. es decir, el interprete sigue leyendo el resto de las lineas hasta pasado los milisegundos.
Cita: Es que necesito controlar que se oculte una tabla a los 6 segundos de haberse mostrado.
si de eso se trata, pues tu codigo no hace mucho sentido.
Código:
var timer=setTimeout("document.getElementById('miniguia').style.visibility='visible'",0);
setTimeout("clearTimeout(timer)",6000);
la primera linea se ejecuta tan pronto el interprete lo lee debido a los 0 milisegundos. la segunda linea, no se que pretendes hacer, ¿ocultarlo? pues esa linea no tiene ninguna relacion a la ocultacion, lo que intenta hacer es cancelar el tiempo programado de la primera linea, el cual no tiene sentido porque se estima que en ese momento ya se interpreto el codigo.
lo que necesitas es, volver al ejecutar la primera linea pero con valor diferentes para la visibilidad y un tiempo diferente.