- Determinar el navegador que está utilizando el usuario.
El siguiente script cargaría una u otra página en función del Navegador:<SCRIPT LANGUAGE="JavaScript"> function CargarPagina() { var strId=navigator.userAgent; if (BrowserType.indexOf("MSIE") == 25) /* Buscar cadena "MSIE" en pos. 25 */ location.href="pagIE.html"; else location.href="pagNetscape.html"; } </SCRIPT>
Más fácil:
sNombre=navigator.appName; nVersion=parseInt(navigator.appVersion); //Ej. parseInt("4.01")=4
- Música de fondo en IE y Netscape.
Justo detrás de TITLE se puede incluir:
<BGSOUND SRC="musica.mid">
Como esto só funciona en IE, detrás de BODY se comprueba el navegador y, si se trata de Netscape, se carga la música con EMBED:
<SCRIPT LANGUAJE="JavaScript"><!-- if (navigator.appName == "Netscape") document.write('<EMBED SRC="musica.mid" AUTOSTART="true" HIDDEN="true">') // --></SCRIPT>
- Fecha de última modificación del documento.
Última modificación:
- Botones para enlazar con otra página o enviar un e-mail.
Nota: Netscape no admite STYLE en los botones (IE admite sin problemas los atributos width, height, background-color, color, etc.).
- Enlace para cargar varios marcos a la vez.
Supongamos que al hacer clic en un enlace del índice se desea no sólo cargar la página en el frame principal (frame 2, NAME="Principal"), sino también otra pequeña página en el frame del título (frame 3, NAME="Titulo"). Se hace el siguiente enlace que llama a un script:<A HREF="#nowhere" OnClick="CargarNovedades()">Novedades</A> o bien: <A HREF="javascript:CargarNovedades()";gt;Novedades;lt;/A;gt; <SCRIPT LANGUAGE="JavaScript"><!-- function CargarNovedades() { parent.Principal.location="novedades.htm"; parent.Titulo.location="novedadestitulo.htm"; /* O bien con el número dentro del array de marcos: parent.frames[2].location="novedades.htm"; parent.frames[3].location="novedadestitulo.htm"; Y también se podrían pasar como parámetros: Cargar(strPag1, strPag2) */ } // --></SCRIPT>Nota: otra forma es enlazando varias páginas HTML que se carguen en cascada. Es más chapuzero, pero funcionará aunque el usuario no tenga activado JavaScript en su navegador...
- Barra de botones utilizando una tabla.
- Botones atrás, adelante, inicio, actualizar, cerrar.
Se utiliza el objeto "history". Se puede hacer con un link: <A HREF="#back" OnClick="acción">Atrás</A>
<FORM>
<INPUT TYPE="button" VALUE="acción" OnClick="acción">
</FORM>
Nota: close() cierra la ventana de la página, pero no funciona en un marco.
- Cambiar dinámicamente el color de fondo de la página (suponiendo que no hay imagen de fondo).
- Cambiar aleatoriamente el color de fondo de la página (suponiendo que no hay imagen de fondo).
Se incluye en la HEAD código sin condicionar que calcule un entero aleatorio:
var n = Math.ceil(Math.random() * nColores);
En función de este entero se pone uno u otro color de fondo:
document.write("<BODY BGCOLOR=#color>");
o mejor con:
document.bgColor=#color;
- Resolución de pantalla.
La propiedad "screen" de la clase "window" devuelve un objeto de clase "screen" que permite utilizar las siguientes propiedades:
- Ventana PopUp (en función de la resolución de pantalla).
Nota: En Netscape no se puede dejar espacio tras las comas de los parámetros.¡Increíble...!
Nota: si se intenta abrir de nuevo da error, pues siempre se abre con el mismo nombre. Se podría tener un flag que indique que se abrió, pero ¿cómo saber que se cerró...?
- Ventana PopUp escribiendo dinámicamente su contenido.
- Enlace con imagen que cambia al situar el puntero sobre ella.
- Cuadro de lista con imágenes asociadas que cambian dinámicamente.
Nota: en BODY incluye el evento onload="FlashAmigos()".- Saltar a otra página después de enviar un formulario con el botón Submit.
- Creating a professional database (Category: CGI).
- Add your Webpages to Seach-Engines (Category: Other).
- Creating an Microsoft Active Channel (Category: Other).
Véase "Web Resources' Tutorial (CGI)"
- Fechas y horas.
- Números aleatorios.
- Validar entradas de datos en formularios.
Nota: lo normal sería validar los datos al actualizar o abandonar el control (eventos "onchange" y "onblur") o bien realizar todas las validaciones al submitir el formulario (evento "onsubmit").