Publicado el Miércoles 22 de febrero de 2006 a las 10:03:26 por bobbin
Lecturas
Como se describe en el artículo Pequeños trucos de Javascript de accalfredo, la forma de acceder a la barra de estado en javascript es usando la propiedad status del objeto window.
Esto nos permite escribir un texto en la barra de estado, y el límite se encuentra en 127 caracteres (por lo menos para IE). Todo lo que se exceda será truncado y no aparecerá. Hay que añadir que es sólo una línea, así que saltos de línea, tabuladores y demás caracteres especiales son convertidos de forma que aparezca sólo una línea.
Pero ... ¿qué posibilidades nos ofrece esto?
Evidentemente, nos ofrece mostrar al usuario la información que queramos, pero hay de advertir que los usuarios suelen centrarse en la pantalla y la barra de estado suele quedar fuera del campo de visión, así que es difícil llamarles la atención para que la miren.
Así, si cuando entra en la página queremos mostrarle un mensaje sólo hemos de añadir una función, asociarla al onload de la página y que diga algo como:
function ponMensaje() { window.status = ""; }
no podrá contener comillas dobles salvo que vaya acompañado con una barra invertida (o backslash) o, para entendernos, esto:
Otra forma sería introducir la sentencia en un script puro y duro. Así, si quiero mostrarlo al comienzo de la página y no cuando se acabe de cargar (ya que mi página tarda 5 minutos en cargar, por ejemplo), habríamos de hacer lo siguiente:
window.status = "";
Mi página web
Otros usos podrían ser avisar de errores, pero si queremos que el usuario se percate de ellos, mejor hacerlo en un popup. Windows avisa que hubo errores de ejecución de javascript en la barra de estado.
Como decía al principio, en el artículo "Pequeños trucos de Javascript" aparece nuestra siguiente forma de uso de la barra de estado, que es asociar la sentencia al evento onMouseOver de un elemento de la página. Con esto conseguiremos que aparezca un mensaje en la barra de estado al pasar por encima del elemento. Esto se suele acompañarse con una llamada a window.status en la que se borra la barra de estado. Esto nos permitirá mostrar el mensaje única y exclusivamente cuando el usuario pase el ratón por encima del elemento.
Como indicaba antes, suele ser bastante difícil llamar la atención del usuario sobre la barra de estado, y es necesario que aparezcan y desaparezcan cosas de la barra de estado para que el usuario se percate de que pasa algo ahí abajo y se pare a mirar. El caso anterior es un buen ejemplo, pero existe otra posibilidad de llamar la atención.
Vamos ahora con el culmen del artículo, que es una marquesina en la barra de estado. Esto sí que hará fijarse al usuario en la barra de estado al haber movimiento contínuo.
Para ello empezamos definiéndonos una cadena de caracteres:
var micadena = "Esto es una prueba de marquesina"; var contador = 1;
El algoritmo a seguir es fácil. Cada segundo (1000 milisegundos) incrementamos un contador y asignamos a la barra de tareas el resultado de cortar nuestra cadena de caracteres usando ese contador como límite. Al llegar al límite, iniciamos el contador a uno. Quedará algo tal que así:
function miMarquesina () { if (contador == micadena.length) contador = 1;
window.status = micadena.substring(0,contador++);
window.setTimeout("miMarquesina()", 1000); // Hacemos una llamada a miMarquesina dentro de 1 segundo }
Para activar la marquesina sólo habrá que hacer una llamada a miMarquesina, y aparecerá nuestra marquesina en la barra de estado. Podeis apreciar que en esta marquesina va apareciendo el texto, pero no se mueve como una marquesina normal.
Existen variaciones sobre esta marquesina, aunque su código se va a quedar de ejercicio: La primera es usar un texto de más de 127 caracteres y asignar a la barra de estado, en lugar de la subcadena desde 0 hasta el contador, la subcadena desde el contador hasta el final. Otra opción es rellenar con caracteres en blanco, en el caso de una cadena de menos de 127 caracteres, y asignar a la barra de estado la subcadena desde el contador hasta el final seguida de la subcadena desde 0 hasta el contador, lo que nos dará la sensación de una marquesina normal.